2

私は c++ を初めて使用し、クラスとオブジェクトを扱うのが本当に苦手です。cout <<".."; だけでなく、ユーザーにデータを入力させる方法が見つかりません。私から。クラスとオブジェクトを理解する必要があります。よろしくお願いします。フォーラムで同様の質問を検索しましたが、何も見つかりませんでした。

#include <iostream>
#include <string>

using namespace std;

class ManosClass{
public:
    string name;
};

int main ()
{
    ManosClass co;
    co.name =          //i want here the user to enter his name for example and i can't figure a way to do this
    cout << co.name;
    return 0;
}
4

4 に答える 4

2

ユーザー入力を読み取るには、std::getlineを参照するか、使用しますstd::cin

std::getline(std::cin, co.name);

また

std::cin >> co.name;
于 2013-07-22T10:26:08.820 に答える
2

cout物を送ります。cinこれは役立つかもしれません:

cin >> co.name;
于 2013-07-22T10:26:49.837 に答える
1

人の名前が空白で区切られていると想定したくない場合は、どのバージョンがgetline()存在するかを検討してください。<string>一部の名前には複数の「単語」が含まれています。cin.getline()また、誰かの名前の最大長を事前に指定する必要がないため、不器用ではありません。

#include <iostream>
#include <string>
using namespace std;

int main()
{
   string strName;
   getline(cin, strName); //Will read up until enter is pressed
   //cin >> strName //will only return the first white space separated token
   //Do whatever you want with strName.
}

編集:元のクラスを使用するように変更

#include <iostream>
#include <string>

using namespace std;

class ManosClass{
public:
    string name; //You might want to look at rather not using public data in a class
};

int main ()
{
    ManosClass co;
    getline(cin, co.name);
    cout << co.name;
    return 0;
}

代替手段: 演算子のオーバーロード

#include <iostream>
#include <string>

using namespace std;

class ManosClass{
public:
     friend ostream& operator<<(ostream& out, const ManosClass& o);
     friend istream& operator>>(istream& in, ManosClass& o);
private:
    string name; //Hidden from prying eyes
};

ostream& operator<<(ostream& out, const ManosClass& o)
{
    out << o.name;
    return out;
}

istream& operator>>(istream& in, ManosClass& o)
{
    getline(in, o.name);
    return in;
}

int main ()
{
    ManosClass co;
    cin >> co; //Now co can be used with the stream operators
    cout << co;
    return 0;
}
于 2013-07-22T10:31:13.953 に答える