我看过类似的问题,但我的有点不同。我确保以二进制模式打开文件并检查读取时是否发生错误。
文件内容:
message1, message2, 53467
读取简单文件的程序:
int bytesRead;
FILE* CSV;
CSV = fopen("\\Temp\\csv.txt", "rb");
char dataBuf[128];
while ( (bytesRead = fread(dataBuf, 1, sizeof(dataBuf), CSV) > 0) )
{
if (ferror(CSV))
//handle error
//do stuff with dataBuf contents
}
fread() 总是返回 1。ferr 也没有输入,所以没有文件读取错误。但是,字符数组 dataBuf 填充有文件中的整个消息。我将 fread 与另一个函数结合使用,因此我需要知道使用 fread() 读取了多少字节。有任何想法吗?
优先级很重要。
在赋值周围添加括号。
while ( ( bytesRead = fread(dataBuf, 1, sizeof(dataBuf), CSV) ) > 0 )
^ ^
see C_Operator_Precedence_Table
如果你看到1.5.1 File Copying
的部分The C programming Language By Brian W. Kernighan and Dennis M. Ritchie
您将得到对此的明确解释。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)