参考書でC言語の勉強をしている中で次のようなコードがでてきました。
C言語
1#include <stdio.h> 2 3int main(void){ 4 int ch,i; 5 int cnt[10]={0}; 6 while((ch == getchar()) != EOF){ 7 switch(ch){ 8 case '0': cnt[0]++; break; 9 case '1': cnt[1]++; break; 10 case '2': cnt[2]++; break; 11 case '3': cnt[3]++; break; 12 case '4': cnt[4]++; break; 13 case '5': cnt[5]++; break; 14 case '6': cnt[6]++; break; 15 case '7': cnt[7]++; break; 16 case '8': cnt[8]++; break; 17 case '9': cnt[9]++; break; 18 } 19 } 20 21 puts("数字文字の出現回数"); 22 for(i = 0; i< 10; i++){ 23 printf("'%d' : %d\n", i, cnt[i]); 24 } 25 return 0; 26}
これを実行し例えば,11112345678999,などと入力しenterキー、そしてctrl+z(環境によってはctrl+dらしい?)と入力したら、
数字文字の出現回数
'0' : 0
'1' : 4
'2' : 1
'3' : 1
'4' : 1
'5' : 1
'6' : 1
'7' : 1
'8' : 1
'9' : 3
と出力されるらしいのですが、そもそも入力時点でctrl+zを押すと、
^Z
[1]+ Stopped ./a.out
などと出力されて終了、また私はlinux(gcc)を使っているので(linuxはctrl+Dらしい)ctrl+Dを押してみたのですが何も出力されずにに入力画面が続行されています。
どうすれば上記のように実行できるでしょうか、教えてください。
linux(gcc)、Visual Studio Codeで実行しています。
回答2件
あなたの回答
tips
プレビュー