0

我有一个文本文件。如何使用 C 仅删除文件中的最后一行?

谢谢!约翰。

4

2 回答 2

6

普通 ANSI C 不提供任何减小文件大小的标准方法——在标准 C 中做到这一点的唯一方法是将整个文件内容复制到一个新文件中,除了您要省略的部分。

或者,您可以使用特定于操作系统的函数来就地截断文件。例如,POSIX 提供了ftruncate()将文件缩短到给定长度的功能。您将搜索最后一行的开头,然后在此之前截断文件(lseek()用于获取位置)。


如果你有 GNU head,最简单的选择就是使用它:

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

你的方法是正确的。Sacn 换行,记住最后一个,然后使用truncateor ftruncate。另请参阅如何在 C 中截断文件?.

hth

马里奥

于 2011-01-20T05:23:07.287 回答