读书人

关于c++ 输入输出流的一个有关问题求

发布时间: 2013-03-14 10:33:15 作者: rapoo

关于c++ 输入输出流的一个问题,求解答
代码如下:
#include <fstream>
#include <iostream>
#include <string>
using namespace std;

int main( int argc, char** argv)
{
fstream fs("12.txt", fstream::in);
if (fs.is_open())
{
cout << "File successfully open." << endl;
if (fs)
{
fs.seekg(-2, fs.end);
int Num = 0;
fs >> Num;
cout << "Num:" << Num << endl;
fs.seekg(0, fs.beg);
string a, b;
fs >> a >> b;
cout << a << endl;
cout << b << endl;
}
fs.close();
}
else
{
cout << "Error opening file.";
}
return 0;
}
读取的文件12.txt如下:
asdhad
gweiha
12
输出效果如下:
File successfully open.
Num:12


请按任意键继续. . .
我的疑问是:为什么fs >> a >> b;不能读取了呢?输出都是回车而已. c++ iostream string >> fstream
[解决办法]

引用:
自己找到解决方法了:在fs.seekg(0, fs.beg);之前添加fs.clear();就行了
当缓冲区里有多余的内容时,你应该先清理下缓冲fflush(stdin); 头文件<cstdio>,然后再清理流状态。这样就不会把缓冲中的东西输入到下一个输入里了,

读书人网 >C++

热点推荐