C ++如何使用CIN输入这样的值?

c++ how to use cin for inputting values like this?

本文关键字:输入 何使用 CIN      更新时间:2023-10-16

我对C++很陌生,我试图创建一个程序来接收用户的请求,如下所示:

i7: 43 2 21 A

基本上它必须遵循的格式是在 i 之后应该有一个没有任何空格的数字,后面直接跟着 :,然后数字之间的空格,最后最后一个字符应该是 A。用户可以选择在 : 和 A 之间输入任意数量的数字,如果输入与此格式有任何不同,用户会收到错误。

我不知何故设法完成了某些部分(尽管仍然需要弄清楚如何处理整个间距问题(,但我无法存储最后一个字符 A idk 为什么......这是我到目前为止所做的。

#include <iostream>
#include <vector>
using namespace std;
int main()
{
int size;
vector<long double> nums;
long double numbers;
char c1, c2, c3;
if (cin >> c1)
{
if (cin >> size >> c2 && c1 == '<' && c2 == ':')
{
while (cin >> numbers)
nums.push_back(numbers);
cin>>c3;  //this doesn't work or even get called
cout<<c3<<endl;
for(int i=0;i<nums.size();i++)
{
cout<<nums[i]<<endl;
}

}
else{
cout<<"error"<<endl;
}
}
return 0;
}

您的问题是,cin的故障位是在while循环之后设置的。在它之后打电话给cin.clear(),它应该可以工作。相关:为什么我们在读取输入后调用 cin.clear(( 和 cin.ignore((?