由于某种原因,文件中的信息没有被传递。生成的输出是错误的,有人可以指定出错的地方吗?
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);
}
}
答案 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。