我正在尝试编写一个程序,将文本文件中的数字加载到数组中。文本文件称为“数字”,数字格式如下:3,49,52,40,34等。
当我尝试运行程序时,我得到一个“程序没有响应错误”。谁能指出我做错了什么?非常感谢。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 32
int main (void) {
FILE* fp;
fp = fopen ("numbers.txt", "r");
if (fp == NULL)
puts ("No data in file");
return 0;
int n = 0;
int i = 0;
int j = 0;
int a[MAX];
while (fscanf(fp, "%d, ", &n) > 0) {
a[i++] = n;
}
fclose (fp);
printf ("Data loaded");
for (j = 0; j < MAX; j++) {
printf ("%d", a[j++]);
printf ("THE END");
}
return 0;
}
答案 0 :(得分:2)
将括号置于if
条件:
FILE* fp;
fp = fopen ("numbers.txt", "r");
if (fp == NULL)
{
puts ("No data in file");
return 0;
}
答案 1 :(得分:1)
if (fp == NULL)
puts ("No data in file");
return 0;
同样:
if (fp == NULL)
puts ("No data in file");
return 0; //returned already
您的程序已经返回而未从文件中读取。
你应该做
if (fp == NULL)
{
puts ("No data in file");
return 0;
}