我的程序要求我读取一个带有数字列表的数据文件。我的目标是得到每个数字并将它们添加到数组中。该文件有大约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/