我想获取用户输入并在我的shell环境中输出它

时间:2012-10-16 11:51:07

标签: c++ input

我想接受用户输入并将其输出到我的屏幕上。 我想让用户键入他们需要的类型,例如键入O ,但我的输出没有捕获我的 O ,只是我的输入,那么有没有办法只捕获类型内的整行?

我的代码的示例输出。

输入太阳类型:键入k

输入行星:10

输入的太阳类型:输入

行星数:10

这只是我整个代码的一部分。

#include <iostream>
#include <string>
#include <sstream>

using namespace std;

class LocationData
{   
    private:
    string sunType;
    int noOfEarthLikePlanets;
    int noOfEarthLikeMoons;
    float aveParticulateDensity;
    float avePlasmaDensity;
    public:

};
int main()
{
    int i;
    string s;
    LocationData test;
    cout<<"Enter Sun Type: ";
    cin>>s;
    test.setSunType(s);
    cin.clear();
    cin.ignore(10000,'\n');
    cout<<"Enter planets: ";
    cin>>i;
    test.setNoOfEarthLikePlanets(i);
    cout<<"Sun type that was entered: "<<test.getSunType();
    out<<"\nNo of Planets: "<<test.getNoOfEarthLikePlanets()<<endl;
}

2 个答案:

答案 0 :(得分:2)

getline(cin, s);

读取整行并将该行放入s变量。正如你找到的那样

cin >> s;

只读取一个单词,这就是它停在类型 O 之间的空格的原因。

答案 1 :(得分:-1)

尝试使用gets() / getline()功能。默认情况下,cincout会忽略空格。我不知道如何让他们接受空白。但是通过上述功能,您将获得理想的结果。

参考:gets()getline()