この人頭いいなと思ったエピソード

12) ファイル入出力関数を使って、次のプログラムを作成しなさい。ファイルを読み込み、読み込んだ情報を下記のファイル出力条件に従い別のファイルに出力する。出力するファイル名については、入力を促しファイル名に拡張子".txt"を付与する。同一のファイル名を指定し、実行した場合は前回の内容に追加する。
ファイル出力条件: unknown以外を別ファイルに出力する。
前提条件: 以下のstatus.txtファイルを作成する。

unknown
completed
processing
completed
completed
processing
unknown
unknown
processing
unknown
completed
processing


<表示イメージ>
出力するファイル名を入力して下さい。 out_status(←入力する) ファイルの読み込み/書き込みに成功しました。

<ファイルイメージ>
out_status.txt ←入力したファイル名(拡張子".txt"が付与される。)

completed
processing
completed
completed 1回目の実行結果
processing
processing

completed
processing
completed
processing
completed
completed 同一のファイル名を指定した、2回目の実行結果
processing (前回の内容に追加される。)
processing
completed
processing

全くの素人で、今困っておりますので、ご指導くださいますようお願いします。

A 回答 (3件)

/* 質問のタイトルは考えてください。

*/
#include <stdio.h>
#include <string.h>
#define INFILE "status.txt"
int main(void) {
○○char outfile[100], buff[200];
○○FILE *ifp, *ofp;
○○ifp = fopen(INFILE, "r"); if(!ifp) return -1;
○○printf("出力するファイル名を入力して下さい。");
○○fgets(outfile, sizeof(outfile), stdin);
○○outfile[strlen(outfile) - 1] = '\0';
○○strcat(outfile, ".txt");
○○ofp = fopen(outfile, "a"); if(!ofp) return -2;

○○while(fgets(buff, sizeof(buff), ifp)) {
○○○○if(strcmp(buff, "unknown\n")) {
○○○○○○fprintf(ofp, "%s", buff);
○○○○}
○○}
○○puts("ファイルの読み込み/書き込みに成功しました。");
○○fclose(ofp);
○○fclose(ifp);
○○return 0;
}
    • good
    • 0
この回答へのお礼

教えてくれて有難うございました。

お礼日時:2010/03/21 18:08

>12) ファイル入出力関数を使って、次のプログラムを作成しなさい。


課題の丸投げか何かですか?
それで、何処がどうわからなくて困ってるの?


そういや、一か月前にも別QAで「最初から最後まで全く同じ文章」の質問があったなぁ。
    • good
    • 0

全くの素人、と言っても、わかるところもあるでしょう。


できるところだけ作ったソースと、具体的な解らない箇所を明記すれば、回答もつきやすいでしょう。

本当にまったくわからないのなら、Cの勉強を1からやりなおしてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!