我对C很陌生,但我遇到了一个问题...
我的最终目标是从.bin文件读取(然后printf到控制台)二进制文件,但是现在我一步一步地尝试只读第一位...
我的代码:
...
FILE *file = fopen("test1.bin", rb);
int i = 0;
fread(&i, 1, 1, file);
printf("%i\n", i);
...
Run Code Online (Sandbox Code Playgroud)
现在我尝试了三个不同的.bin文件,一个输出0,另外两个输出12个!
当我从文件中读取1位时,为什么输出2/12?不应该是0还是1?我究竟做错了什么?非常感谢.
将fread()通话更改为:
fread(&i, sizeof(int), 1, file);
Run Code Online (Sandbox Code Playgroud)
第二个参数是要读取的元素的大小,第三个参数是要读取的元素的数量.发布的代码正在读取一个字节int.
您还应该检查来自fopen()和fread()调用的返回值以确保它们成功.
| 归档时间: |
|
| 查看次数: |
32397 次 |
| 最近记录: |