您的位置:首页 > 编程语言 > C语言/C++

c++和c读写文件的悲剧如何发生的

2013-06-10 18:52 274 查看
一段写悲剧的代码:

FILE *fp;
fp = fopen("1.txt", "w+");

unsigned char writetofile[256];

for (int i = 0; i < 256; i++)
{

int tmp = i;
cout<<tmp<<"\t";
fwrite(&tmp,sizeof(int),1 ,fp);

}
fclose(fp);
cout<<endl;

fp = fopen("1.txt", "r");
for (int i = 0; i < 256; i++)
{
int tmp;
fread(&tmp,sizeof(int),1 ,fp);
cout<<tmp<<"\t";
}

cout<<endl;
fclose(fp);
大家可以测试发现,读回来后数值发生了悲剧!

下面附上正确的写法:

FILE *fp;
fp = fopen("1.txt", "w+b");

unsigned char writetofile[256];

for (int i = 0; i < 256; i++)
{

int tmp = i;
cout<<tmp<<"\t";
fwrite(&tmp,sizeof(int),1 ,fp);

}
fclose(fp);
cout<<endl;

fp = fopen("1.txt", "rb");
for (int i = 0; i < 256; i++)
{
int tmp;
fread(&tmp,sizeof(int),1 ,fp);
cout<<tmp<<"\t";
}

cout<<endl;
fclose(fp);
O(∩_∩)O~ 这个c++测试代码悲剧了2个小时!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++ 读写文件