关于网友提出的“ C++以binary方式打开文件流的问题”问题疑问,本网通过在网上对“ C++以binary方式打开文件流的问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: C++以binary方式打开文件流的问题
描述:string s_in="1.txt";
string s_out="2.txt";
string s;
ifstream infile(s_in.c_str(),fstream::binary);
//ifstream infile(s_in.c_str());
ofstream outfile(s_out.c_str());
while(!infile.eof())
{
getline(infile,s);
outfile<<>
cout<<>
}
infile.close();
outfile.close();
1.txt中的内容是
Moco
Hua
按照getline()函数忽略换行符,应该输出一个字符串,输出到2.txt中是一条字符串,但是从2.txt中复制到notepad++中又变回了两行。而如果用默认方式打开文件则还是一行。(中间两个是以binary方式打开文件所得)





解决方案1: 推荐使用WinHex软件查看硬盘或文件或内存中的原始字节内容。
不要把
fopen("...","...");fscanf,fprintf,fclose //读时把\r\n替换成\n,写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待
和
fopen("...","...b");fread,fwrite,fclose //不作以上替换,遇到\x1a仍继续读;读写的内容当字节看待
弄混了
以上介绍了“ C++以binary方式打开文件流的问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3689628.html