c ++如何使用cin输入这样的值?

问题描述 投票:1回答:1

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

i7:43 2 21 A

基本上必须遵循的格式是在我应该有一个没有任何空格的数字之后,直接加上:,然后数字之间的空格,最后一个字符应为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;
}
c++ vector cin
1个回答
0
投票

您的问题是,在cin循环之后设置了while的故障位。之后调用cin.clear(),它应该可以工作。相关:Why would we call cin.clear() and cin.ignore() after reading input?

© www.soinside.com 2019 - 2024. All rights reserved.