C言語を使用して、ファイル内の空白や改行の数をカウントして出力するプログラムを作っています。
C
1#include<stdio.h> 2#include<stdlib.h> 3#include <ctype.h> 4 5int main(void){ 6 char filename[30]; 7 scanf("%s",filename);/*ファイルの名前を指定*/ 8 FILE *f; 9 10 int c; 11 int d=0,o=0,nl=0,s=0; 12 13 f=fopen(filename,"r");/*ファイルを開く*/ 14 15 if(f==NULL){ 16 printf("%sがオープンできません!\n",filename); 17 return 1; 18 } 19 20 21 while((c=fgetc(f))!=EOF){ 22 if(isdigit(c) !=0) d++; /*数字カウント*/ 23 if(c==' ') s++; /*空白カウント*/ 24 if(c=='\n') nl++; /*改行カウント*/ 25 if(c!=' ' && c!='\n') o++; /*それ以外カウント*/ 26 } 27 28 fclose(f);/*ファイルを閉じる*/ 29 printf("%d digit\n%d spaces\n%d new lines\n%d others",d,s,nl,o); 30 return 0; 31 32}
以上のようにコードを書きました。
ここから、リダイレクションを使って、コマンドプロンプトにファイル名を入力するとデータをとってきて出力したいのですがどうすれば良いのでしょうか...?
count.cというプログラム名で書いており、
c
1$ ./count < sample.dat
と入力してもエラーとなってしまいます。
どなたかお助けいただけると大変助かります。
回答2件
あなたの回答
tips
プレビュー