问题描述
#include <iostream>
using namespace std;
int main(){
int const size = 10;
char input_1[size];
char input_2[size];
cout << "Enter input 1: " << endl;
cin.get(input_1,size);
cin.get();
cin.clear();
cout << "Enter input 2: " << endl;
cin.get(input_2,size);
cout << "input_2 = " << input_2 << endl;
return 0;
}
OUTPUT1 〜/ cplusplus $ ./conundrum.o
输入输入1:
qwe
输入输入2:
asd
input_2 = asd
输出2
〜/ cplusplus $ ./conundrum.o
输入输入1:
输入输入2:
input_2 =
〜/ cplusplus $
当我输入连续的字符流时,此程序将按预期输出。输出1显示预期的输出。但是,当我只为第一个输入按下回车键时,此代码不会要求输入_2并抛出空的输入_2,如输出2所示。据我的理解,换行符应已由cin.get()和failbit set歼灭。进入某种异常状态(在input_1中没有存储任何内容之后),应由cin.clear()重置,以准备第二个cin.get(input_2,...)。问题出在哪里?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)