目前我的代码是这样的:
#include<stdio.h>
#define MAX_SIZE 12
int readInventory(char filename[], int item[], float price[]);
int main(void)
{
int item[MAX_SIZE], i;
float price[MAX_SIZE];
char filename[MAX_SIZE];
for ( i = 0; i < MAX_SIZE; i++ )
{
readInventory(filename, &item[i], &price[i]);
printf("\n%d %.2f\n", item[i], price[i]);
}
return 0;
}
int readInventory(char filename[], int item[], float price[])
{
FILE *inventory;
int i;
inventory = fopen("inventory.dat", "r");
for ( i = 0; i < MAX_SIZE; i++ )
{
fscanf(inventory,"%d%f", &item[i], &price[i]);
return 1;
}
fclose(inventory);
return 0;
}
打印出:
1200 20.00
1200 20.00
1200 20.00
1200 20.00
1200 20.00
1200 20.00
1200 20.00
1200 20.00
1200 20.00
1200 20.00
1200 20.00
1200 20.00
这只是文件中的前 2 项
如何让我的程序显示所有 12 个不同的项目?
最佳答案
在代码中包含 return 1 语句会立即从 for 循环返回。删除它,它应该可以工作。
#include<stdio.h>
#define MAX_SIZE 12
int readInventory(char filename[], int item[], float price[]);
int main(void)
{
int item[MAX_SIZE], i;
float price[MAX_SIZE];
char filename[MAX_SIZE];
for ( i = 0; i < MAX_SIZE; i++ )
{
readInventory(filename, &item[i], &price[i]);
printf("\n%d %.2f\n", item[i], price[i]);
}
return 0;
}
int readInventory(char filename[], int item[], float price[])
{
FILE *inventory;
int i;
inventory = fopen("inventory.dat", "r");
for ( i = 0; i < MAX_SIZE; i++ )
{
fscanf(inventory,"%d%f", &item[i], &price[i]);
}
fclose(inventory);
return 0;
}
关于c - 如何将文件中的数据存储在数组中的函数中,然后打印该数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36590297/