ファイル入力
ファイル入力
入力ファイル内にあるアラビア数字の個数を数えるプログラムを以下の手順に沿って作成せよ.
① コマンドラインから入力ファイル名,出力ファイル名を引数として指定する準備をプログラム内に記 述する.
② 入力ファイルをread属性,出力ファイルをwrite属性としてオープンする記述を行う.
③ fgetc関数を用いて入力ファイルから1文字,関数sに代入する.
④ 関数sの値をif文を用いて比較し,1~9の数字であればカウンターに1プラスする構文を記述する (例えばi++を使用).
⑤ ①~④を入力ファイルの最後の文字まで一文字ずつ実行し(EOFまで),ファイル内のすべての1~9までの数字の個数をカウントする.
⑥ 数えた1~9までの文字数を画面および出力ファイルに出力する.
という問題で以下のようにといてみましたが途中の部分がよくわからずスカスカの状態でとまっています どなたかアドバイス もしくは模範解答お願いします
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char *argv[/url]){
FILE *fin, *fout;
char c;
int ;
if(argc!=3){
printf("引数の数が正常ではない\n");
exit(1);
}
if((fin = fopen(argv[1], "r")) == NULL ) {
printf("入力ファイルオープンエラー\n");
exit(1);
}
if((fout = fopen(argv[2], "w")) == NULL ) {
printf("出力ファイルオープンエラー\n");
exit(1);
}
while ( (c=fgetc(fin)) != EOF){
if(c==' ')
}
fclose(fin);
fclose(fout);
return 0;
}
① コマンドラインから入力ファイル名,出力ファイル名を引数として指定する準備をプログラム内に記 述する.
② 入力ファイルをread属性,出力ファイルをwrite属性としてオープンする記述を行う.
③ fgetc関数を用いて入力ファイルから1文字,関数sに代入する.
④ 関数sの値をif文を用いて比較し,1~9の数字であればカウンターに1プラスする構文を記述する (例えばi++を使用).
⑤ ①~④を入力ファイルの最後の文字まで一文字ずつ実行し(EOFまで),ファイル内のすべての1~9までの数字の個数をカウントする.
⑥ 数えた1~9までの文字数を画面および出力ファイルに出力する.
という問題で以下のようにといてみましたが途中の部分がよくわからずスカスカの状態でとまっています どなたかアドバイス もしくは模範解答お願いします
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char *argv[/url]){
FILE *fin, *fout;
char c;
int ;
if(argc!=3){
printf("引数の数が正常ではない\n");
exit(1);
}
if((fin = fopen(argv[1], "r")) == NULL ) {
printf("入力ファイルオープンエラー\n");
exit(1);
}
if((fout = fopen(argv[2], "w")) == NULL ) {
printf("出力ファイルオープンエラー\n");
exit(1);
}
while ( (c=fgetc(fin)) != EOF){
if(c==' ')
}
fclose(fin);
fclose(fout);
return 0;
}