【发布时间】:2012-12-21 08:51:36
【问题描述】:
我注意到有两种返回文件开头的方法
FILE *fp = fopen("test.bin", "r")
fseek(fp, 0, SEEK_END);
rewind(fp);
和
FILE *fp = fopen("test.bin", "r")
fseek(fp, 0, SEEK_END);
fseek(fp, 0, SEEK_SET);
如果这些方法之间有什么区别?
【问题讨论】:
我注意到有两种返回文件开头的方法
FILE *fp = fopen("test.bin", "r")
fseek(fp, 0, SEEK_END);
rewind(fp);
和
FILE *fp = fopen("test.bin", "r")
fseek(fp, 0, SEEK_END);
fseek(fp, 0, SEEK_SET);
如果这些方法之间有什么区别?
【问题讨论】:
它们基本上是完成同一件事的两种不同方法:将指针设置为文件的开头。唯一的区别是rewind 也会清除错误指示符。
如果可以选择,您应该使用fseek。这是因为rewind 没有返回一个表示操作是否成功的整数。
【讨论】:
如果fseek() 返回成功,它也会清除文件结束指示符,而rewind() 不会这样做
【讨论】: