C 使用read函数读取特定行
假设我有一个包含1000行的二进制文件C 使用read函数读取特定行,c,C,假设我有一个包含1000行的二进制文件data.bin,它是使用fwrite编写的。为了阅读它,我只需要做一些类似的事情(其中data是一个大小为1000的双缓冲区): 这将读取整个文件,但我只读取最后的500行!!这意味着我必须跳转到data.bin中的第499行,并从那里开始读取,直到结束。如何修改先前的fread函数以读取最后500行 谢谢。您知道fseek()函数吗。您需要将指针设置为从最后500行开始,然后读取直到eof 查找fseek(),您将能够解决此问题 fseek!!我还没读过
data.bin
,它是使用fwrite
编写的。为了阅读它,我只需要做一些类似的事情(其中data
是一个大小为1000的双缓冲区):
这将读取整个文件,但我只读取最后的500行!!这意味着我必须跳转到data.bin
中的第499行,并从那里开始读取,直到结束。如何修改先前的fread
函数以读取最后500行
谢谢。您知道fseek()函数吗。您需要将指针设置为从最后500行开始,然后读取直到eof
查找fseek(),您将能够解决此问题
fseek
!!我还没读过。谢谢你让我知道,好吗?你会使用什么偏移量?这可以形成一个正确的答案,因为OP似乎并不真正意味着“行”…很明显,用户正在使用double的大小来计算文件中的位置,所以这个答案确实是正确的relevant@iiiiiii相关的,甚至可能是正确的方向,但到目前为止还没有答案。最好在回答之前等待澄清,重复问题中误导性的措辞确实不是一个好主意。也就是说,问题的副本也是错误的,应该重新打开。二进制文件中的“行”是什么?请澄清你的意思。
FILE *fp = fopen("data.bin", "rb");
fread(data, sizeof(double), (1000*sizeof(double),fp);