fscanf() 无法在 C 中正确读取负整数

问题描述 投票:0回答:0

我有一个文件,其中有数千个连续的整数,由一个空格分隔,如下所示:

16 0 3 -13 -42 8 -3 -11 -63 -48 4 -24

但是当我在迭代整数#的for循环中使用

fscanf(fp, "%d", &temp);
时,它将这些值读取为:

16 0 3 243 214 8 253 245 193 208 4 232

似乎所有的正数都是正确的,但没有一个是负数所以我想看看是否有人知道为什么。 谢谢!

我希望获得与文件中完全相同的值。我尝试切换到 &temp 变量而不是实际位置,这是一个动态分配的数据结构,它的行为有点奇怪,因为我担心它可能就是那样。然而,这个问题完全与负值有关,所以我认为它可能与 fscanf 有关,但文档说 %d 适用于负值或正值。

编辑,更清楚地表明我在做什么:

int temp;
for (int i = 0; i < total_numbers; i++){
    fscanf(fp, "%d", &temp);
    number_array[i] = temp;
}
c file integer scanf unexpected-token
© www.soinside.com 2019 - 2024. All rights reserved.