【发布时间】:2017-12-19 10:40:48
【问题描述】:
我有一个这样的输入文件
10 25 4 3 86 1 23 20 14 1 3 7 3 16 7
2
第一行:一个数字数组。
第 2 行:一个整数 k。
我尝试 fgets() 来阅读它们,但它不起作用。这是我的代码:
int main(){
FILE *input = fopen("Input7.txt","r");
int a[2000],k;
fgets(a,2000,input);
fscanf(input,"%d",&k);
fclose(input);
int i,n;
n = 15; //My example array have 15 numbers
for (i=1;i<=n;++i){
printf("%d ",a[i]);
}
return 0;
}
我在阅读后打印出数组 a 但这是我得到的 Photo links
我该如何解决这个问题?顺便说一句,我想计算我读入数组的数量。感谢您的帮助。
【问题讨论】:
-
您能否详细说明“它不起作用”部分?
-
也许会一直做minimal reproducible example。
-
fgets() 是读取一个字符串,它需要一个 char*,而不是 int*。您需要读取字符串,然后解析字符串以填充您的 int[]。
-
编译该代码时没有收到任何错误或警告吗?您的数组
a不是与fgets一起使用的正确类型 -
如果你看 fgets 的原型,第一个参数是 char*,但你提供的是 int[]。尝试修复警告(不使用强制转换)。他们在那里是有原因的。