- ベストアンサー
C言語のファイル処理 C言語
指定したファイルのなかの文字列を表示させたいです。 最後の2行だけ表示させたいのですが、どうやっていいのかわかりません。。。また、それ2行を、入力した出力ファイルに書き込みたいのですが・・、どうやって指定したらいいのでしょうか?? わかる方よろしくです(><)
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>最後の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)
ちょっと回答からは外れちゃいますが、unixでいうtailコマンドで同じことが出来ます。 tail -2 in_file >out_file
- yamaichiro
- ベストアンサー率31% (77/243)
入力した出力ファイルって、ファイル名を入力して もらうという意味なら、scanfとかでファイル名を 指定してもらってfopenでファイルを作成して No.1の方の最後の行のprintfをfprintfにすれば できると思います(最後はfclose)。 もし、入力した出力ファイルというのが、今読んだ ファイルのことであれば、fseekで先頭に戻って、 上記fprintfで書き込んで、fcloseかな。