• ベストアンサー

出力内容を新しいテキストファイルで保存するには?

プログラム #include <stdio.h> #include <string.h> main() { char text[100]; char a[20], b[20], c[20], d[20], e[20], f[20]; char fname[20]; int i = 1; FILE *fp; printf("■ファイル名>>"); scanf("%s",fname); fp=fopen(fname,"r"); if((fp = fopen(fname,"r")) == NULL){ printf("ファイルをオープンできませんでした。\n"); return 1; } else{ printf("ファイルをオープンしました。\n"); } while( fscanf(fp, "%s", text) != EOF){ sscanf(text, "%[^,], %[^,], %[^,], %[^,], %[^,], %[^\0]", a, b, c ,d, e, f); printf("%d回目\n",i++); printf("全文:%s\n",text); printf("1つ目:%s\n",a); printf("2つ目:%s\n",b); printf("3つ目:%s\n",c); printf("4つ目:%s\n",d); printf("5つ目:%s\n",e); printf("6つ目:%s\n\n",f); } } テキストファイル ABCD,EFGH,IJKL,MNOP,QRST,UVWXWZ abcd,efgh,ijkl,mnop,qrst,uvwxyz あいうえお,かきくけこ,さしすせそ,たちつてと,なにぬねの,はひふへほ テキストファイルから文字列を読み込み、変換させて出力させた内容を他のテキストファイルに保存するにはどのようにしたらいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.1

scanfとfscanfの違いは理解していますか? ↓ scanf キーボードから入力 fscanf ファイルストリームから入力 fscanfのファイルポインタにstdinを指定した場合の動作を理解していますか? ↓ fscanf(stdin,...)はscanfと同じ。 fprintfの仕様を理解していますか? ↓ scanfとfscanfの関係は、printfとfprintfの関係に似ています。 ここまで書いたら、何をどうすれば良いか、判りますよね?

すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.3

質問ポイントは明確にしましょう。 例えば、このプログラムを動かしたら、かくかくしかじかの現象が起きて上手く動かない…というふうに。 このプロフラムは、「ファイルをオープンできませんでした。」となるのでしょうね。先ず、ここを直しましょう。 fp=fopen(fname,"r"); if((fp = fopen(fname,"r")) == NULL){ この記述では同じファイルを二度開きしようとしています。既に開かれているファイルは、閉じない限り開けるはずがありません…というわけでエラーになります。 fp=fopen(fname,"r"); if(fp == NULL){ と記述するか、 if((fp = fopen(fname,"r")) == NULL){ とするかを決めてください。残りの問題は、これが解決してからになるでしょう。よくみると、このプログラムはファイルのクローズさえしていないですね。 かなり支離滅裂な記述です。いい加減に理解してプログラムを組んでも、それは組まなかったことに等しく、解答者に負担を強います。だから丸投げするのではなく、部分的に質問したほうが賢明です。解答者の皆さんに得点のチャンスが広がりますのでね。(^^; ここで解決しようとせず、もういちど参考書を読み返してみる必要があります。 この問題が大学の演習問題ならまだしも、企業の言語研修での課題であれば、現時点の理解度では使いモノになりませんので、気を引き締めてかかる必要があります。

すると、全ての回答が全文表示されます。
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

ファイルをオープンして、printfと同じように(ファイルに)出力するには、fprintfを使えばいいです。 >出力させた内容を他のテキストファイルに保存するにはどのようにしたらいいのでしょうか? "出力させた"内容ということであれば、 stdoutの内容を出力後取り出すことができないので、 prog.exe > output.txt とでもしないとしょうがないのでは?

すると、全ての回答が全文表示されます。
このQ&Aのポイント
  • ぷららのインターネット接続サービスを解約後、プラこみ0にメール申し込みをした場合の料金引き落としについての相談です。
  • ユーザーは、プロバイダ契約を解約した後、引き続きプラこみ0の利用料金について不明点を持っています。
  • 契約変更や引き落としの手続きに関するトラブルが発生しており、解決方法を探しています。
回答を見る

専門家に質問してみよう