В настоящее время мой код выглядит следующим образом:Как хранить данные из файла в функции в массиве и затем печатать этот массив?
#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'. – kaylum
Посмотрите на этот цикл, где вы читаете, и помните, что 'return' возвращает функцию * немедленно *. –
И решите, где вы хотите, цикл - либо в функции readInventory, либо снаружи, но не в обоих местах. – tofro