[英]Executing Error - Program stops working (C)
我需要编写一个简单的程序,该程序从文件中读取数字,然后将这些数字存储在数组中。 文件中的最后一个数字为0,因此程序知道何时读取。
当我执行程序时,Dec C ++崩溃。 我上线寻求解决方案,并相应地更改了设置,但这没有用。 我运行了我拥有的其他程序,并且运行良好,这使我认为代码有问题。
有任何想法吗?
#include <stdio.h>
int main(){
int i, j=0, k;
int values[20];
FILE*ptr;
ptr = fopen("input.txt", "r");
fscanf(ptr, "%d", &i);
while (i=!0){
values[j]=i;
j++;
fscanf(ptr, "%d", &i);
}
for (k=0; k<20; k++)
printf("%d\n", values[k]);
fclose (ptr);
return 0;
}
另一个错字:
while (i=!0){
应该:
while (i != 0){
您的代码为i
分配了!0
,而不是将i
与0
进行比较。 !0
是1
,所以您有一个无限循环,并且您正在写超出数组范围的内容。
另请注意,如果文件中包含20个以上的数字,则将在数组外部写入。 并且如果它的数目少于20,则打印values[k]
的循环将读取未初始化的数组条目。
代码有几处错误:
为了帮助您进行调试:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.