char data[255]={0},user[15],password[32];
if((fp=fopen("QQ.ini","wb+"))==NULL)
{
printf("无法创建QQ.ini文件\n");
system("pause");
exit(0);
}
else
{
printf("初始化数据尚未创建\n请输入QQ账号:");
gets(user);
printf("请输入QQ密码:");
gets(password);
sprintf(data,"user:%spassword:%s",user,password);
fwrite(data,strlen(data),1,fp);
memset(data,0,255);
fseek(fp,0L,0);
fread(data,strlen(data),1,fp);
printf("输出:%s\n",data);
fclose(fp);
printf("创建初始化文件成功\n");
}
为什么输出结果为空??创建的QQ.ini文件正常,问题就是无法从这个文件读出数据
我一向用"w+b"
strlen(data)好像是0
问题重新描述下:
我有个QQ.ini,里面内容是:user:35555password:444
这是我fwrite(data,strlen(data),1,fp);一次写入的,打开方式wb close文件
然后我第二次运行程序,想读取这个文本数据
rb方式打开,确保文件指针不空后,fseek(fp,0L,2);fread(data,ftell(fp),1,fp);
再一次性读出
为什么得到的结果是空字串?????
memset(data,0,255);
之后strlen(data)=0
读0长度,当然是空
第二种:
fseek(fp,0L,2);
long l = ftell(fp);
fseek(fp,0L,0);
fread(data,l,1,fp);
文件指针移到文件头
C/C++ code