我有一个程序要求用户多次输入输入,并将输入存储在不同的char变量中,然后对这些变量执行操作.
我的问题是我想限制输入一次为一个变量工作.例如:
char a = 'a', b = 'b', c = 'c';
cout << "Enter a ";
cin >> a;
cout << "\nEnter b ";
cin >> b;
cout << "\nEnter c ";
cin >> c;
cout << "Entered chars were " << a << ", " << b << ", " << c;
Run Code Online (Sandbox Code Playgroud)
运行这个,如果用户输入tyu(包括字母之间的空格)将使程序输入t变量a,y输入变量b,u输入变量c.从本质上讲,它会有点"掉头"并自动为cin设置值,而不是要求用户为每个人执行此操作.
我想要的是检查用户为变量a输入的内容仅为1个字符.
我尝试过使用cin.good(),但在为cin >> a输入多个字符后它返回0; 我也尝试过使用cin.get(a); 然后检查cin.good().如果用户输入多个字符,这也会返回0.
有没有办法限制输入一次仅用于一个cin操作?
您应该逐行读取输入,然后解析它.因此
std::cout << "Enter a:\n";
std::string input;
std::getline(std::cin, input);
if(input.length() != 1)
//error
else
char a = input[0];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16129 次 |
| 最近记录: |