最近详细学习了c++里的文件流,感触蛮深的.尤其是接触了getline()和ignore()这两个函数后,发觉原来文件流还可以这样用.
测试环境 vc++ 6.0 winxp
#include<iostream>
#include<string>
using namespace std;
main(){
string a,s;
getline(cin,a);
cin.ignore(1);
cin>>s;
cout<<a+s;
}
以上是很简单的一段代码,注意的是getline这个函数,输入数据后要按两次回车才行,上网查了一下说是vc++6.0的bug,据说在net里已经修正了.
在上面的代码中,运行到getline这一行,我们输入数据后按一次回车,这时输入结束,数据会存在a中(不包括回车);但getline并没有结束,我们需要在按一次回车才行,这是cin流中会残存一个'/n'字符.然后遇到ignore语句,他会舍去cin流中的一个字符,然后cin>>s,从输入流中再输入数据存入s,最后将a和s连接.
输入数据:
1234
w
输出:
1234w
以上是我个人理解,如有不妥,还请指正!