• ベストアンサー

C言語のファイル処理 C言語

指定したファイルのなかの文字列を表示させたいです。 最後の2行だけ表示させたいのですが、どうやっていいのかわかりません。。。また、それ2行を、入力した出力ファイルに書き込みたいのですが・・、どうやって指定したらいいのでしょうか?? わかる方よろしくです(><)

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

  • ベストアンサー
  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.1

>最後の2行だけ表示させたいのですが 2行文のバッファを用意し、ファイルを一行ずつ読みバッファの内容を更新していけば良いのでは? なんとなくなフロー char buffer[],last[],last2[]; FILE *fp; fp = fopen(・・・) while(fgets(buffer, sizeof(buffer), fp) != NULL){ strcpy(last2, last); strcpy(last, buffer); } printf("%s\n%s\n", last2, last); >また、それ2行を、入力した出力ファイルに書き込みたいのですが・・ もう少し具体的に書いていただいた方がわかりやすいと思いますが・・・

その他の回答 (2)

  • mssine
  • ベストアンサー率24% (38/156)
回答No.3

ちょっと回答からは外れちゃいますが、unixでいうtailコマンドで同じことが出来ます。 tail -2 in_file >out_file

回答No.2

入力した出力ファイルって、ファイル名を入力して もらうという意味なら、scanfとかでファイル名を 指定してもらってfopenでファイルを作成して No.1の方の最後の行のprintfをfprintfにすれば できると思います(最後はfclose)。 もし、入力した出力ファイルというのが、今読んだ ファイルのことであれば、fseekで先頭に戻って、 上記fprintfで書き込んで、fcloseかな。

関連するQ&A