2

我想接受用户输入并将其输出到我的屏幕上。我假设让用户键入他们需要什么样的类型,例如Type O,但我的输出没有捕获我的O,只是我的Type,所以有没有办法让它捕获整个行只打字

我的代码的示例输出。

输入太阳类型:输入 k

进入行星:10

输入的太阳类型:type

行星数量: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;
}
4

2 回答 2

2

是的

getline(cin, s);

读取整行并将该行放入s变量中。正如你所发现的

cin >> s;

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

于 2012-10-16T11:52:25.950 回答
-1

尝试使用gets() / getline()功能。cincout默认忽略空格。我不知道如何让他们接受空格。但是使用上述功能,您将获得所需的结果。

参考:gets()getline()

于 2012-10-16T11:56:32.977 回答