[英]How do you write to a specific line of a txt file in C?
我想覆盖txt文件中的某一行,同时保持所有其他行不变。 有没有一种简单而好的方法?
基本上使用Fseek()搜索要更改的位的顺序,
然后使用Fwrite()覆盖旧文本
OBS:您需要以rw模式打开文件以覆盖
fopen ("myfile.txt", "wr");
使用这些参考:
http://www.cplusplus.com/reference/cstdio/fwrite/
http://www.cplusplus.com/reference/cstdio/fseek/
(它说的是C ++,但可以在C上运行)
除非您要覆盖的行的长度具有相同的字节数,否则您不能在现有文件中“插入”或“删除”字节。 您将必须编写一个新文件:
stdout
) 如果要覆盖现有字节, 并且可以确定旧行和新行的长度完全相等,则可以:
rw
模式下fopen()
文件 fseek()
到旧行的字节位置(或读入字符,直到您击中了一些预设数量的换行符,等等—基本上,您希望将文件指针移至旧行的开头) fwrite()
新字节超过旧行的字节 fclose()
文件指针 如果您确实需要覆盖同一文件中的字节,并且新行的字节数少于旧行,则可以做一些技巧,用空格字符直到换行符覆盖旧行的末尾,但是更干净解决方案是简单地编写一个包含更新内容的新文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.