0

我正在尝试编写一个程序,将文本文件中的数字加载到数组中。文本文件称为“数字”,数字格式如下: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;
}
4

2 回答 2

2

将括号置于以下if条件:

FILE* fp;
fp = fopen ("numbers.txt", "r");
if (fp == NULL)
{
    puts ("No data in file");
    return 0;
}
于 2013-03-28T20:16:55.870 回答
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; 
}
于 2013-03-28T20:17:58.313 回答