我正在尝试更改已打开文件中的光标位置。
fp = fopen("dirty", "a+");
fprintf(fp, "Text at end of file");
// seek to end of third line (eg.)
fprintf(fp, "Text at end of third line");
我已经尝试关闭并重新打开文件,以及 fseek
,但没有用。
如有任何帮助,我们将不胜感激。
最佳答案
要查找文件中的位置,请使用 fseek()
.在 C/C++ 文件处理中,没有关于行开始和/或结束位置的知识,除了存在“行结束标记”,换行符( '\n'
)的意义上。
要知道一行的开始或结束位置,您必须自己跟踪它(例如,通过使用 fgetc()
逐字符读取文件,使用 fscanf()
逐元素读取文件或逐行读取 fgets()
以及何时发现某些重要部分,用ftell()
保存当前位置。
请注意,虽然 fgets()
可能看起来像知道行,它实际上只是从文件中的位置读取,当字符是换行符时,它会停止。但是没有关于“这一行有 40 个字符长”的知识。
关于c - 跳转到特定行的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16422048/