也许我被烧掉了,但我无法弄清楚为什么每次运行此代码时,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为什么你认为通过引用比返回值更好的解决方案? –