使用C在文本文件中加载数字

时间:2013-03-28 20:13:37

标签: c eclipse-cdt

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

2 个答案:

答案 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; 
}