关于文件的读取,读取文件中的数据(都是小于256的),可不可以用c%的格式来读
FILE* fp;
fp=fopen("22dkdata_5.dat","r");
if(!fp) cout<<"data.txt open fail!!!"<<endl;
int f =0;
int datacount=0;
linklist *hea,*s;
hea=s=(linklist *)malloc(sizeof(linklist));
hea->next=NULL;
int d=sizeof(linklist);
while((fscanf(fp,"%d",&f))!=EOF)
{
s->next=(linklist *)malloc(sizeof(linklist));
s=s->next;
s->num=f;
s->next=NULL;
datacount++;
}
s->next=(linklist *)malloc(sizeof(linklist));
s=s->next;
s->num=4;
s->next=NULL;
s->next=(linklist *)malloc(sizeof(linklist));
s=s->next;
s->num=207;
s->next=NULL;
s->next=(linklist *)malloc(sizeof(linklist));
s=s->next;
s->num=95;
s->next=NULL;
s->next=(linklist *)malloc(sizeof(linklist));
s=s->next;
s->num=255;
s->next=NULL;
s->next=(linklist *)malloc(sizeof(linklist));
s=s->next;
s->num=256; ////
我试着改成了c%,char f;但是运行时候会报错
ais.exe 中的 0x00351b4e 处未处理的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突
[解决办法]
你的数据格式是文本字符串的,c%是读取单个字符,会出问题(比如"123",%c要读3次,读出来是'1'、'2'、'3'这3个字符)
[解决办法]
推荐使用WinHex软件查看文件或内存中的原始字节内容。