我的程序要求我读取一个带有数字列表的数据文件。我的目标是得到每个数字并将它们添加到数组中。该文件有大约100个数字,格式如下:



(造型有点不对劲,对不起;[)
到目前为止

int main()
{
    double prices[1000];
    int count,price;

    FILE *file;
    file = fopen("price.dat","r");
    if(file == NULL)
    {
        printf("Error: can't open file to read\n");
    }
    else
    {
        printf("File prices.dat opened successfully to read\n");
    }
    if (file){
        while (fscanf(file, "%d", &price)!= NULL){
            count++;
            prices[count]=price;
        }
    }
    fclose(file);
}

问题是它继续不断地加上最后一个数字。有什么帮助吗?

最佳答案

你的代码有几个问题。举几个例子:
fscanf不返回指针,因此不应将其与NULL进行比较。所有scanf函数都返回一个可以是正、零或负的整数。
您没有初始化count,因此它将包含一个看似随机的值。
数组的索引开始为零,因此在分配之前,不应增加数组索引count
不想停下来的真正问题在于第一点。

关于c - 读取dat文件并将数字添加到数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15757639/

10-11 23:12
查看更多