恐惧的问题

时间:2011-01-28 16:37:46

标签: c fread

我试图从文件中一次读取一个字节:

size_t result_new = 1;  
char buf6[1];  
if( (result_new = fread(buf6, 1, 1, pFile)) != 1)  
            {  
                printf("result_new = %d\n", result_new);
                printf("Error reading file\n");
                exit(1);
            }

result_new变为0并且正在打印错误。什么可能是错的。我确定pFile没问题。

感谢

4 个答案:

答案 0 :(得分:2)

根据文件:

  

fread()和fwrite()返回   成功阅读的项目数量或   书面的(即,不是   字符)。如果发生错误,或   到达文件的末尾,          返回值是短项目计数(或零)。

那你为什么不检查能回答你问题的错误代码呢?例如,您可以使用perror

答案 1 :(得分:1)

如果您只需要一个字节,getc将是比fread更好的选择。界面更简单,而且速度可能更快。

答案 2 :(得分:0)

http://www.cplusplus.com/reference/clibrary/cstdio/fread/有一个从文件中读取的示例。它是一个c ++页面,但应该适用于c

答案 3 :(得分:0)

使用freadfwrite时请记住,在打开正常文本文件的某些情况下,可能会发生奇怪的错误。打开二进制文件将消除这个潜在的问题。这主要是由于“新行”,出于某种原因,二进制和文本文件的读写似乎有所不同。