也許我被燒掉了,但我無法弄清楚爲什麼每次運行此代碼時,getInfo函數都不會將cin數據寫入MovieData結構。功能沒有保存到結構
#include <iostream>
#include <string>
using namespace std;
struct MovieData {
string Title, Director, Year_Released, RunningTime;
};
MovieData film1;
MovieData film2;
void getInfo(MovieData something)
{
cout << "Please enter...\n";
cout << "Title: ";
cin >> something.Title;
cout << "Director: ";
cin >> something.Director;
cout << "Year Released: ";
cin >> something.Year_Released;
cout << "Running Time: ";
cin >> something.RunningTime;
}
void showInfo(MovieData something1)
{
cout << something1.Title << endl;
cout << something1.Director << endl;
cout << something1.Year_Released << endl;
cout << something1.RunningTime << endl;
cin.get();
cin.get();
}
int main()
{
getInfo(film1);
showInfo(film1);
cin.get();
cin.get();
return 0;
}
我不知道這是否是某種全局/局部問題,它似乎如果我必須手動在主函數中的每個獲取信息行才起作用。
你永遠不會從'getInfo'返回任何東西所以要麼讓函數返回變量'something'或者通過引用而不是按值調用函數'getInfo'(我認爲後者會是一個更好的解決方案 – JackV
我推薦閱讀上「通過引用」與「通過價值傳遞」。「理解這兩個基本概念很重要。http://www.cs.fsu.edu/~myers/c++/notes/references.html – Alan
@JackV爲什麼你認爲通過引用比返回值更好的解決方案? –