2

ユーザー入力を取得して画面に出力したい。たとえば、タイプOのように、ユーザーが必要なタイプの種類を入力できるようにする必要がありますが、出力ではOがキャプチャされず、タイプだけがキャプチャされるため、行全体をキャプチャする方法はありますか?タイプのみ?

私のコードのサンプル出力。

Sunタイプを入力してください:タイプ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;
}
4

2 に答える 2

2

はい

getline(cin, s);

行全体を読み取り、その行をs変数に入れます。あなたが見つけたように

cin >> s;

1つの単語のみを読み取るため、TypeOの間のスペースで停止します。

于 2012-10-16T11:52:25.950 に答える
-1

関数を使ってみてくださいgets() / getline()。デフォルトでは空白cinを無視します。cout空白を受け入れる方法がわかりません。しかし、上記の関数を使用すると、目的の結果が得られます。

参照:gets()getline()

于 2012-10-16T11:56:32.977 に答える