C++ 二进制文件读取
#include<iostream>#include<fstream>usingnamespacestd;intmain(){charch[100]="HelloWorl...
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
char ch[100]="Hello World!";
fstream file("example.dat",ios_base::trunc|ios_base::out|ios::in|ios_base::binary);
file.write(ch,strlen(ch));
file.seekg(ios::beg);
char read_ch;
while(!file.eof())
{
file.read(&read_ch,1);
cout<<read_ch;
}
cout<<endl;
file.close();
return 0;
}
为什么屏幕显示结果是 : " Hello World!! " ????
(最后是两个感叹号,可是二进制文件明明是一个感叹号) 展开
#include<fstream>
using namespace std;
int main()
{
char ch[100]="Hello World!";
fstream file("example.dat",ios_base::trunc|ios_base::out|ios::in|ios_base::binary);
file.write(ch,strlen(ch));
file.seekg(ios::beg);
char read_ch;
while(!file.eof())
{
file.read(&read_ch,1);
cout<<read_ch;
}
cout<<endl;
file.close();
return 0;
}
为什么屏幕显示结果是 : " Hello World!! " ????
(最后是两个感叹号,可是二进制文件明明是一个感叹号) 展开
2个回答
展开全部
已改,看注释
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
char ch[100]="Hello World!";
fstream file("example.dat",ios_base::trunc|ios_base::out|ios::in|ios_base::binary);
file.write(ch,strlen(ch));
file.seekg(ios::beg);
char read_ch;
// 分析一下你写的
while(!file.eof()) // 没读到文件结尾就循环
{
file.read(&read_ch,1); // 读一个字节
cout<<read_ch; // 将读到的字节打印出来,但如果上面read到结尾,read_ch的值没变,还是上一次循环那个,因此会打印2个!
}
// 改成以下这样就可以了
while(file.read(&read_ch,1)) // 如果读到文件结尾,read函数返回0,下面的就不执行了
{
cout<<read_ch;
}
cout<<endl;
file.close();
return 0;
}
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
char ch[100]="Hello World!";
fstream file("example.dat",ios_base::trunc|ios_base::out|ios::in|ios_base::binary);
file.write(ch,strlen(ch));
file.seekg(ios::beg);
char read_ch;
// 分析一下你写的
while(!file.eof()) // 没读到文件结尾就循环
{
file.read(&read_ch,1); // 读一个字节
cout<<read_ch; // 将读到的字节打印出来,但如果上面read到结尾,read_ch的值没变,还是上一次循环那个,因此会打印2个!
}
// 改成以下这样就可以了
while(file.read(&read_ch,1)) // 如果读到文件结尾,read函数返回0,下面的就不执行了
{
cout<<read_ch;
}
cout<<endl;
file.close();
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询