+ -
当前位置:首页 → 问答吧 → C++命令行输入字符ctrl+z,为什么出错,如何避免

C++命令行输入字符ctrl+z,为什么出错,如何避免

时间:2011-12-09

来源:互联网

我们编写一个图书馆系统,然后被别人测试的时候,别人给我们输入了一个ctrl+z,然后输入文件的时候,出现了什么也没有输入,这是怎么回事,我们应该如何避免呢?
  R! E7 L* \# n0 @+ m  G+ |( J2 X还有一个问题,一个string类型,然后再命令行输入的时候,输入一个a b,就是一个a一个空格一个b,就出错了,比如:9 c; o# }: t6 }0 p8 B: y; B
string q, w;
9 ]; X! Z) v" X9 W+ Vcin >> q;( _8 K0 c$ l, c+ U  I7 x& V6 @
cout << q;
9 {& l# J% H: F' j* t输入a的时候,我们输入a,然后输入一个空格,然后输入一个b,结果,输出的q为:a.8 B( I8 c- ]" _# D
请问这俩问题怎么解决,谢谢了。

作者: jinhuer168   发布时间: 2011-12-09

你还是吧你的问题描述清楚吧;: k/ ~0 ], D; r0 i
有几个问题;2 f# z7 f6 `. T
每个问题各是什么5 u/ W; B' a8 l0 h: F
我就看懂了了
复制内容到剪贴板
代码:
string s;
cin>>s;
cout<<s<<endl;
输入a b记过输出只有a;
- J5 E% ~0 k4 B$ q1 D* ?因为cin默认空格或者回车为输入之间的分隔符
5 P% \* A9 d. W7 Q+ f% O这是你可以用getline接受一行
复制内容到剪贴板
代码:
string s;
getline(cin,s);
cout<<s<<endl;

作者: 月夜幻影   发布时间: 2011-12-09

还有ctrl+z为输入结束符;7 i$ ^# S. P  H% J
使输入流错误,之后输入均无效;
+ z  [* w" s4 w& w8 i4 w4 n  C9 S$ i. h& w$ ~' R0 _
如果别人非要这样输入的话你可以
复制内容到剪贴板
代码:
string s;
cin>>s;//这里别人输入ctrl+z;
while(!cin)
{cin.clear();
cin.sync();
cout<<"please enter again"<<endl;
cin>>s;
}

作者: 月夜幻影   发布时间: 2011-12-09

热门下载

更多