关于fread()外部文件的读入。
#include "stdio.h"
struct paixu
{
int m;
int r1;
int r2;
int r3;
int r4;
int r5;
int r6;
int r7;
int r8;
int t;
}px[9];
void read()
{
int size;
FILE *fp;
if((fp=fopen("ziyuan.txt","r"))==NULL)
{
printf("cannot open this file\n");
}
printf("输入节点数目:");
scanf("%d",&size);
for(int i=0;i<size;i++)
{
fread(&px[i],sizeof(struct paixu),1,fp);
printf("其中的一个值为:%d\n",px[i].m);
}
fclose(fp);
}
main()
{
read();
return 0;
}
有这么一个简单的代码,用fread()出来的数据出现了问题。如下所示:
输入的节点数:9
其中一个值:154405169
其中一个值:873018122
其中一个值:873018634
其中一个值:839464714
其中一个值:10
其中一个值:0
其中一个值:0
其中一个值:0
其中一个值:0
说明:其中if((fp=fopen("ziyuan.txt","r"))==NULL)
”ziyuan.txt"是保存的文本文件:文本文件数据格式如下(是从excel表直接拷贝到TXT文件中的):
1421100106
24611001010
3400000202
4020000001
5400000003
6060200006
7220200002
8220100211
谁给解决一下,怎么就不能读正确的数据呢,文本文件的数据该怎么保存啊??
[解决办法]
既然你txt文本的格式都确定下来了,为什么不用格式化的读入呢?
fscanf()
或者可以容错的
sscanf()
--C和指针310页有跟你这个类似的例子。
fread是读二进制文件的,空格什么的都当字符读入了吧。如果说错了还请大神们指正。