0

テキストファイルがあります。C を使用してファイルの最後の行だけを削除するにはどうすればよいですか?

ありがとう!ジョン。

4

2 に答える 2

6

プレーンな ANSI C では、ファイルのサイズを縮小する標準的な方法は提供されていません。標準 C でこれを行う唯一の方法は、省略したい部分を除いて、ファイルの内容全体を新しいファイルにコピーすることです。

または、OS 固有の関数を使用して、ファイルをインプレースで切り捨てることもできます。たとえば、POSIX は、ftruncate()ファイルを特定の長さに短縮する関数を提供します。最後の行の先頭を検索し、その直前のファイルを切り捨てます (lseek()位置を取得するために使用します)。


GNU を使用している場合、最も簡単な代替手段は、それheadを使用することです。

head -n -1 < file.original > file.new
于 2011-01-20T05:22:05.710 に答える
0

あなたはアプローチで正しいです。改行の場合は Sacn 、最後のものを覚えてからtruncateorを使用しますftruncateCでファイルを切り捨てる方法も参照してください。.

h番目

マリオ

于 2011-01-20T05:23:07.287 に答える