1

以下のような関数に構造体を渡したい (input(int age, string s) のように単一のメンバーを関数に渡すことができることはわかっているが、input(student s) のように構造体全体を渡したい)

#include <iostream>

using namespace std;

struct student
{
    string name;
    int age;
};

void input(student s)
{
    cout << "Enter Name: ";
    cin >> s.name;

    cout << "Enter age: ";
    cin >> s.age;
}

int main(int argc, char *argv[]) {
    struct student s1;

    input(s1);

    cout << "Name is: " << s1.name << endl;
    cout << "Age is: " << s1.age << endl;

}

上記のコードは正しい出力を生成しません。上記のコードをポインターで使用して、期待される出力を取得したいと考えています。

テスト:名前を「abc」に入力し、年齢を10にすると、メインに印刷されません

4

3 に答える 3

0

構造体を参照で渡す必要があります。今はコピーで渡しているため、変更が行われた場合は、渡されたオブジェクトのコピーになります。

void input(student& s){....}
于 2013-09-13T05:54:14.450 に答える