我正在尝试读取文件并传递文件信息并通过数组函数在屏幕上打印?

时间:2017-10-10 17:01:53

标签: c

由于某种原因,文件中的信息没有被传递。生成的输出是错误的,有人可以指定出错的地方吗?

   File Name       File Size         Date
    AAA.C            1234            08-12-94   
    XXX.TXT          5678            12-11-96
    DDD.C            9876            01-12-97
    BBB.TXT          4455            06-08-93

这是数据文件,我正在尝试读取文件并使用函数在屏幕上打印。

#include<stdio.h> 
char filedata(char name[][7]);

int main(void)
{
    char name[4][7];
    int i;  

    filedata(name);

    for(i=0;i<4;i++)
    {
        puts(name[i]);
    }

}  

char filedata(char name[4][7])
{
    FILE *infile;
    infile=fopen("data","r");

    int rows = sizeof(name)/sizeof(name[0]);
    int i;

    for(i=0;i<rows;i++)
    {
        fgets(name[i],sizeof(name),infile);
    }

}

2 个答案:

答案 0 :(得分:0)

 #include<stdio.h>

 char filedata(char name[][100]);

int main(void)

 {
    char name[5][100];
    int i;  

   filedata(name);

   for(i=0;i<5;i++)
    {
      puts(name[i]);
    }

}  

  char filedata(char name[][100])
  {
    int i;
    FILE *infile;
    infile=fopen("data","r");


   for(i=0;i<5;i++)
    {
      fgets(name[i],100,infile);
    }

}

答案 1 :(得分:0)

  

功能FILEDATA如何将数据转移到主要功能

name发送到您的函数时,您会发送一个指向名为name的本地变量的指针,因为name是一个数组。在C中,传递给函数后没有“[]”的数组被视为指向第0个成员的指针。

您通过引用传递此函数filedata

此外,请不要忘记fclose(infile);,并且在filedata函数中通过for循环进行操作时,最好检查EOF。