fread 的奇怪问题
struct stu
{
int num;
};
int _tmain(int argc, _TCHAR* argv[])
{
FILE *fp;
fp = fopen( "list ", "wt+ ");//可读写,文本文件
for(int i = 0; i < 30; i++)
{
stu a;
a.num = i;
size_t t = fwrite(&a,sizeof(struct stu),1,fp);
}
fclose(fp);
fp = fopen( "list ", "r ");//读
for(int i = 0; i < 30; i++)
{
stu a;
fread(&a,sizeof(int),1,fp);
printf( "%d\n ", a.num);
}
fclose(fp);
return 0;
}
过程非常简单
1、定义一个结构,其中只有一个整型成员
2、写30个
3、读30个。
本来预期读出1至30,但实际读到25就不对了,剩下都是25了。
大家有没有遇到类似的问题?
[解决办法]
读的时候也须用fread(&a,sizeof(struct stu),1,fp);