我试图在文本文件中存储大量素数,如果我结束我的程序,我需要能够读取文件的行以查看我中断的位置。我不知道如何阅读最后一行,而不是首先阅读文件的每一行。
答案 0 :(得分:3)
我也不知道。只需将最后一个值写入单独的文件,然后读取该值以了解恢复的位置。
答案 1 :(得分:2)
您可以使用setg()跳转到文件末尾并猜测一条线的距离。如果你的点和文件末尾之间有换行符,那么你就是在倒数第二行,知道最后一行是什么。
但Pete Beckers的解决方案要好得多,我会改用它。
答案 2 :(得分:1)
您可以计算数字的字节数。
例如,您有5个号码,并且您想要读取最后一个号码。
1个整数是4个字节。所以你可以使用fseek在文件中移动4 * 4 = 16 Byte。之后你可以阅读最后一行。
fseek(文件,16,SEEK_SET);
SEEK_SET表示文件开头。
答案 3 :(得分:1)
寻找文件的最后,然后向后阅读,直到找到换行符,这意味着你找到了最后一行的开头
答案 4 :(得分:0)
如果您知道线的最大长度,这将很容易。
只需将指针作为文件末尾的位置减去此值。
从那里开始读取行并将它们放入缓冲区。当前一个字符是新行时清除缓冲区
当你用完文件时,缓冲区将包含它。
如果您不知道最大长度,则可以始终向后读取文件。