#include
#include
#include
struct st
{
char name[50];
int age;
}s[3];
void main(void)
{
int i;
FILE*fpo;
fpo=fopen("e:\students.txt","r");
if(fpo==NULL)
{
printf("失败");
exit(0);
}
for(i=0;i<3;i++)
{
fread(&s[i],sizeof(struct st),1,fpo);
}
for(i=0;i<3;i++)
{
printf("%s%d",s[i].name,s[i].age);
}
fclose(fpo);
getch();
}
把文件的内容贴出来啊。不然怎么知道
请在代码中检测一下 fread 的返回值,以判断读是否成功吧。
你可以检测C盘有没有病毒,这也是一个办法
//这个默认是以文本格式打开的
fread();//用于二进制文件读取,与打开方式不匹配,容易出问题。
从你的文件名看应该是文本文件,但从内容来分析应该是二进制文件。
所以改为二进制打开:
fopen( "student.txt","rb");
看看你的文件指针向后移动了没有
#include<stdio.h>
#include<stdlib.h>
struct st
{
char name[4];
char age[4];
}s[3];
void main(void)
{
int i,j;
FILE*fpo;
fpo=fopen("e:\\students.txt","r");
if(fpo==NULL)
{
printf("失败");
exit(0);
}
for(i=0;i<3;i++)
{
fread(&s[i],sizeof(struct st),1,fpo);
for(j=0;j<4;j++)
printf("%c",s[i].name[j]);
for(j=0;j<4;j++)
printf("%c",s[i].age[j]);
}
fclose(fpo);
system("pause");
}