簡體   English   中英

用C ++輸入結構元素

[英]Input elements of structure in C++

我正在嘗試在C ++ 14中實現一個結構。我已經建立了一個具有3個int值的結構

struct mystruct{
    int a;
    int b;
    int c;
};

在我的main函數中,我用以下方式初始化結構數組:

int main(){
    mystruct X[] = {{1,2,3}, {4,5,6}};
    .
    .
}

我將把這個數組傳遞給一個函數,我將對它執行一些操作。 那個功能可能是這樣的:

int myfunc(mystruct X[]){
    //do something
}

如何使用cin將此數組的值作為用戶輸入,而不是對它們進行硬編碼(可能使用對象)? 我不知道該如何解決這個問題。

編輯:我希望這可以以某種方式使用對象實現

您可以為struct實現輸入運算符。 像這樣的東西會起作用:

std::istream& operator>>(std::istream& is, mystruct& st)
{
    return is >> st.a >> st.b >> st.c;
}

現在你可以從這樣的mystruct讀入:

mystruct t;
std::cin >> t;

(注意上面的函數不處理錯誤)

現在,通過使用循環可以非常簡單地將這些新結構添加到數組中。 (我建議在這里使用std::vector )。

這是一個使用std::vector的例子:

std::vector<mystruct> arr;

for (mystruct t; std::cin >> t;)
{
    arr.push_back(t);
}

myfunc(arr.data()); // Or you could change the signature of the 
                    // function to accept a vector

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM