• 締切済み

教えてください。

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 全くの素人で、今困っておりますので、ご指導くださいますようお願いします。

  • sklql
  • お礼率33% (1/3)

みんなの回答

回答No.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; }

sklql
質問者

お礼

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

回答No.2

>12) ファイル入出力関数を使って、次のプログラムを作成しなさい。 課題の丸投げか何かですか? それで、何処がどうわからなくて困ってるの? そういや、一か月前にも別QAで「最初から最後まで全く同じ文章」の質問があったなぁ。

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

全くの素人、と言っても、わかるところもあるでしょう。 できるところだけ作ったソースと、具体的な解らない箇所を明記すれば、回答もつきやすいでしょう。 本当にまったくわからないのなら、Cの勉強を1からやりなおしてください。

関連するQ&A

  • c言語について教えてほしい

    教えてください。 現在c言語を自習していますが、偶然にこういう問題を見ましたが、なかなか解けなくて、助けがほしいです。お願いします。 問題: fopen,fputs,fcloseを使って、次のプログラムを作成しなさい。文字列とファイル名を入力させ、ファイルを生成する。(入力したファイル名に拡張子.txtを付与する。) 表示イメージ: 文字列を入力して下さい。 ファイル書き込みテストをします。注意します (←入力する) ファイル名を入力して下さい。 testei (←入力する) ファイルの書き込みに成功しました。 ファイルイメージ: testi.txt (←入力したファイル名 拡張子.txtが付与される) ファイル書き込みテストをします。注意します (←入力した文字列)

  • コマンド実行結果のファイル出力

    systeminfo echo list volume | diskpart のコマンドを実行結果をテキストファイルに出力したいのですが、 echo list volume | diskpart > "c:\status.txt" systeminfo >> "c:\status.txt" としてバッチで実行しても、何も出力されていないません。 コマンドを画面で入力すると、画面に表示されます。 どうしたらよいか教えてください。

  • VBでテキスト形式のファイル名称から拡張子を取りたい

    みなさんこんにちは^^ ちょっと困っています。 VB6でコーディングを行っていますが 取得したファイル名称を一旦ワークに落として それを出力ファイル名に利用したいのですが、 拡張子が邪魔をして上手く行きません。 何か拡張子を取るような方法があれば教えて頂きたいのですが! 例)入力ファイル名称 → 変換 → 出力ファイル名称   AAA.TXT AAA_001.TXT BBB_001.TXT BBB_001.TXT

  • 出力ファイル名を標準入力から指定したい。

    初心者ですが、よろしくお願いします。 perlで、data.txtというファイルへ $protein の 情報を書き込みたい場合、以下のようにすれば 良いということはわかるのですが、 open(OUT, ">data.txt"); print OUT $protein; では、出力ファイルを data.txtではなく、プログラムを 実行させる度に標準入力から指定してやることはどうやれば できるのでしょうか?

    • ベストアンサー
    • Perl
  • commonで定義した変数を文字型に変換してファイル名に使いたいのですが(fortran)

    たとえば計算ループの反復回数のカウントにniterという変数を使っているとします。 niterが10の倍数になる度にniterの数をファイル名にしてそれぞれの結果をそれぞれのファイルに出力したいのですが,うまくいきません。 open(10,file='file' // CHAR(ICHAR('0'+niter) // '.txt' &,status='unknown') のようにするようにと教わったのですが、これだけではうまくいかないので詳しい方教えていただけませんか? 

  • 複数のファイルを読み込んで別々に書き出すには?

    Perlで複数のファイル 001.txt, 002.txt, 003.txt を一度に読み込み、行頭に行番号を付け、それぞれ 001.OUT, 002.OUT 003.OUT というファイル名で出力するためにはどうすればよいでしょうか? できますでしょうか? よろしくお願いします。

    • ベストアンサー
    • Perl
  • awkで、キーボードからファイルを指定するには

    私は、awkプログラムを始めたばかりの初心者です。 データファイルがfile1、file2、file3とあって、どのファイルを実行させたいかをキーボードから入力させるには、どのようにすればよいのでしょうか。 次のようなプログラムを作ったのですが、うまくいきません。 { printf "ファイル名?" > "/dev/stderr"#画面表示 getline < "/dev/stdin" #数字入力 aaa = $0 #aaaに代入 } { getline < ("file"aaa".txt") #ファイル入力 print $0 #レコードを出力 } これを、バッジファイルで次のように実行をかけて、「結果.txt」に出力する。 jgawk -f prog.awk con > 結果.txt すると、コマンド画面が消えず、エラーとなってしまいます。 バッジファイルに問題があるのでしょうか。 「-f」の後には、プログラム名、データ名>出力ファイル名 とやるようですが、この場合、データ名が決まっていないわけで、キーボード入力したいのだから、「con」でいいのでしょうか。 プログラムを実行させるのに、ほかに良い方法があるのでしょうか。

  • Windowsから直接起動するアプリにリダイレクトを設定するには?

    Windowsから直接起動するアプリにリダイレクトを設定するには? 「ファイル名を指定して実行」から直接アプリを起動し、それにリダイレクトを設定したいのですが、指定したファイルに出力されずに困っています。 例.「ファイル名を指定して実行」→「ipconfig > c:\hoge.txt」を入力= コンソールに出力 コマンドプロンプト上から「ipconfig > c:\hoge.txt」を実行するとhoge.txtに出力されるので、もしかしたらリダイレクト機能はWindowsではなく、コマンドプロンプトが持ってる?と疑っています。 だとしたら、Windowsから直接アプリを起動する場合、リダイレクトは設定できないことになりますが、この認識であっているでしょうか? 環境:Windows XP

  • javaのファイルコピーについて教えてください。

    javaプログラミング初心者の者です。 javaでファイルをコピーし、コピーしたファイルを出力したいのですがどのようにしたよいかわかりません。 以下のように実行したら、ファイルをコピーし、コピーしたファイルを出力するといったものです。 実行例: java実行ファイル名 コピー元ファイル名 コピー後のファイル名 (java FileCopy copysarelu.txt copysareta.txt) ※copysarelu.txtはすでに存在し、copysareta.txtは任意の名前で作成します。 どなたかアドバイスまたは、参考URLなどをご紹介いただけますでしょうか?お願いします。

  • ファイル名検索で *.txt または *.doc を行う方法

    エクスプローラの検索でファイル名の拡張子が txt のものは *.txt 拡張子が doc のものは *.doc をそれぞれ入力すればできますが 、 *.txt または *.doc のもの同時に検索表示する場合、 どのように入力しますか。 また、そのような入力方法はヘルプのどの部分に記載がありますか。