c - 如何将文件中的数据存储在数组中的函数中,然后打印该数组?

标签 c arrays file-management read-write

目前我的代码是这样的:

#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/

相关文章:

java - 使用 Apache Maven 文件管理 API 获取 maven-plugin 中的绝对文件路径

Java,将右键单击功能编码到桌面中

谁能解释一下它的打印输出是 "ink"

python - 使用 MinGW 在 Windows 上构建 lxml

java - 读取文件文本的特定部分,然后将它们添加到数组中

c - 使用结构体指针的两个函数(读取和显示数组)

c - 使过程像二叉树一样,让每个 child 做不同的事情

C++ 指针解引用赋值

Javascript数组元素没有改变

java - 根据最常用的顺序显示 Android 手机中的图像