ファイル入力

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
大阪

ファイル入力

#1

投稿記事 by 大阪 » 17年前

入力ファイル内にあるアラビア数字の個数を数えるプログラムを以下の手順に沿って作成せよ.
① コマンドラインから入力ファイル名,出力ファイル名を引数として指定する準備をプログラム内に記     述する.
② 入力ファイルを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;
}

box

Re:ファイル入力

#2

投稿記事 by box » 17年前

> 入力ファイル内にあるアラビア数字の個数を数えるプログラムを以下の手順に沿って作成せよ.

アラビア数字にはゼロを含みます。
必要なのは0~9の個数ですか?1~9の個数ですか?

> ③ fgetc関数を用いて入力ファイルから1文字,関数sに代入する.

関数sではなく、変数sではありませんか?
ちなみに、fgetcの戻り値はchar型ではなくてint型です。

> ④ 関数sの値をif文を用いて比較し,1~9の数字であればカウンターに1プラスする構文を記述する

もし、0~9であれば、標準関数のisdigitで判定できます。

大阪

Re:ファイル入力

#3

投稿記事 by 大阪 » 17年前

さっそくの解答ありがとうございます
必要なのは01~9の個数です 関数sではなく、変数sでした、問題を間違えていましたすみません。

box

Re:ファイル入力

#4

投稿記事 by box » 17年前

> 必要なのは01~9の個数です

「0~9」のことでしたら、先ほどの回答に書きましたとおり、
isdigitが使えます。

大阪

Re:ファイル入力

#5

投稿記事 by 大阪 » 17年前

#include <stdio.h>
#include <stdlib.h>

int main(int argc,char *argv[/url]){

FILE *fin, *fout;

char c;

int ;

intの後にどんなものをかけばいいのでしょうか

box

Re:ファイル入力

#6

投稿記事 by box » 17年前

> intの後にどんなものをかけばいいのでしょうか

全く手詰まり状態ですか?
最初に提示されたコードは、完全ではなかったものの
それをベースにすればいいところまでいくと思うのですが…。

ファイルを読んだり、文字種別を判定したりする関数は
すでにわかっているのですから、後はファイルに書く関数について調べれば、
おおかた完成すると思います。

大阪

Re:ファイル入力

#7

投稿記事 by 大阪 » 17年前

まったくの手詰まりじょうたいです

管理人

Re:ファイル入力

#8

投稿記事 by 管理人 » 17年前

もし自分でそこまでお書きになっているなら簡単に解けると思うのですが。

1、2番の問題は解けましたか?

例えば、argv[1]には何が入っているか答えられますか?

大阪

Re:ファイル入力

#9

投稿記事 by 大阪 » 17年前

授業中にやっていた課題でできない分は自分で持ち帰る というもので先生も質問を受けつけてくれず ここまでできたのが奇跡なぐらいです 自分でもわからないまま解いているので正直この後どうしていいかわからない状況なので質問させていただきました

管理人

Re:ファイル入力

#10

投稿記事 by 管理人 » 17年前

>関数sに代入する

という意味が解らないのですが、どういう意味ですか?

大阪

Re:ファイル入力

#11

投稿記事 by 大阪 » 17年前

もしかしたら 変数Sかもしれません

管理人

Re:ファイル入力

#12

投稿記事 by 管理人 » 17年前

このプログラム、どこまで自分でお書きになったものですか?

大阪

Re:ファイル入力

#13

投稿記事 by 大阪 » 17年前

似たような問題を改造しただけでほとんど理解せずかきましたのが現状です

管理人

Re:ファイル入力

#14

投稿記事 by 管理人 » 17年前

次回の回答はしばらくお待ち下さい。

閉鎖

“C言語何でも質問掲示板” へ戻る