37124


入力された文字から空白、タブ、改行の個数をカウントするプログラムを作ったのですが、実行後文字を入力しても何も表示されません。。  
どこに原因があるのでしょうか。#includeは省きます)

[code]

    int main() {
    
    int c, blank_count,tab_count,row_count;
    blank_count = tab_count = row_count = 0;
    
    while ((c = getchar()) != EOF) {
        if (c == ' ') {
          blank_count++;
        }   
        if (c == '\t') {
          tab_count++;
        }   
        if (c == '\n') {
          row_count++;
        }   
      }
      printf("blank: %d\n tab: %d\n row:%d\n",blank_count,tab_count,row_count);
      return 0;
    }
    
[/code]


CC BY-SA 3.0
2017-08-11T13:54:28.153
37123
2017-08-11T23:25:13.240
2017-08-11T23:25:13.240
19110
14914
question
c
文字を入力しても出力が表示されない


提示のプログラムは`EOF`が入力されるまで文字入力を繰り返すようになっています（つまり結果が表示されないのは単に入力待ちになっていると思われます）ので、  
`EOF`を入力するなどの必要があります。

例えばwindows環境では`Ctrl`+`Z`(コントロールキーを押しながらＺキーを入力）します。この組合せによる入力が`EOF`入力になります。  
(UNIX系環境では`Ctrl`+`D`)

また、標準入力を対象としているので、  
パイプによる入力  
windows系での例  
`type file.txt | program`  
(UNIX: `cat file.txt | ./program`)

リダイレクトによる入力  
windows系での例  
`program < file.txt`  
(UNIX: `./program < file.txt`)

などとすると自らタイプして試す必要はないです。  
（そういうテスト入力用のファイルを作成しておくと良いと思います。）

ＩＤＥ環境・オンラインコンパイラ環境などの場合は、  
標準入力指定などは異なりますので  
その場合は、そのような使用環境などを質問に追記して下さい。


CC BY-SA 3.0
2017-08-11T14:33:03.570
37124
2017-08-11T14:33:03.570
5044
37123
answer