【问题标题】:Strange behaviour of fread() [duplicate]fread() 的奇怪行为
【发布时间】:2019-05-17 02:25:02
【问题描述】:

这是我的代码:

FILE* fLeftResult = fopen("C:/Users/Vincenzo/Desktop/unina/SOC/progetto esame/elaborazione fir/ResultLowLeft.bin","r+");
short output;
short matlabIdeal[SAMPLES+1] = {0};
size_t returnValue= fread(matlabIdeal, sizeof(short), SAMPLES, fLeftResult);

当 SAMPLES 为 6077 时,数组 matlabIdeal 被填充到第 4095 个值。连续值为 0。returnValue 为 1433。

当 SAMPLES 为 60772 时,数组 matlabIdeal 被填充到第 59391 个值。连续值为 0。returnValue 为 1433。

当 SAMPLES 为 30772 时,数组 matlabIdeal 被填充到第 30719 个值。连续值为 0。returnValue 为 1433。

fread() 填充的值是正确的,但是突然变成了 0。 这是 fread 读取的二进制文件:https://ufile.io/sf85m 你能帮我解决这个问题吗?或者在你的电脑上重现代码看看会发生什么?

【问题讨论】:

    标签: c fread stdio


    【解决方案1】:

    这是因为你没有打开读取二进制数据的文件。

    fread 将流视为文本。

    您应该使用“rb”模式打开文件。

    【讨论】:

      猜你喜欢
      • 2018-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-19
      • 1970-01-01
      • 1970-01-01
      • 2011-03-11
      • 1970-01-01
      相关资源
      最近更新 更多