C++ 调用函数,仅返回0

C++ 调用函数,仅返回0,c++,function,C++,Function,好的,我现在尝试的目标是调用函数getSingleStudentInfo,它包含学生的号码、姓氏和年龄。最后,这个程序设计用来做两件事,第一件是单个学生信息,第二件是打印出20个学生的数组。忽略第二部分,因为我还没有真正进入这一部分,所以忽略任何涉及向量的内容 我遇到的问题是,主要来说,程序要做的第一件事是让你按1键获取单个信息,或按2键获取完整的20人信息。这个程序编译得很好,但是不管你输入什么数字,程序都会说“进程返回0(0x0)”,我很难理解为什么它会这样做,而不是打印单个学生的信息,因为

好的,我现在尝试的目标是调用函数getSingleStudentInfo,它包含学生的号码、姓氏和年龄。最后,这个程序设计用来做两件事,第一件是单个学生信息,第二件是打印出20个学生的数组。忽略第二部分,因为我还没有真正进入这一部分,所以忽略任何涉及向量的内容

我遇到的问题是,主要来说,程序要做的第一件事是让你按1键获取单个信息,或按2键获取完整的20人信息。这个程序编译得很好,但是不管你输入什么数字,程序都会说“进程返回0(0x0)”,我很难理解为什么它会这样做,而不是打印单个学生的信息,因为“学生的ID号是400”“学生的姓是:Simmons”“学生的年龄是:20”

#包括
#包括
#包括
使用名称空间std;
结构学生{
int studentNumber=400;
字符串lastName=“Simmons”;
年龄=20岁;
};
学生证;
int选择;
向量学生数(20);
向量姓氏;
病媒年龄(20岁);
void getSingleStudentInfo(int studentNumber、字符串lastName、int age){
cout您需要调用函数,例如

if (selection == 1)
{
    getSingleStudentInfo(7, "Johnson", 20);
}
然而,似乎通过实现,这应该是一个学生自己的方法了

struct Student {
    int studentNumber = 400;
    string lastName = "Simmons";
    int age = 20;
    void getSingleStudentInfo() const;
};
然后,您将取消一个
学生
实例

Student s{400, "Simmons", 20};
s.getSingleStudentInfo();
如果你有一个向量
Student
,你可以

std::vector<Student> students; // assume this has been populated
std::for_each(begin(students),
              end(students),
              [](const Student& s){s.getSingleStudentInfo();});
std::vector students;//假设已经填充了
std::对于每个学生(开始(学生),
完(学生),
[](const Student&s){s.getSingleStudentInfo();});
要在列中打印,可以将函数更改为

void Student::getSingleStudentInfo()
{
    cout << s.studentNumber << '\t'
         << s.lastName << '\t'
         << s.age << endl;
};
void Student::getSingleStudentInfo()
{

不能总是,总是编译至少与通常的警告(
-Wall
在GCC中;不知道MSVC)。它会捕获这样的错误。MSVC应该使用/W4。改变它从默认值与指令。顺便说一句小建议:注意,声明结构成员的顺序定义了内存中的布局(它是一个结构的东西)因此,我建议您将int成员放在字符串之前。我宁愿将函数更改为不带任何参数(反正不使用它们)。您的编辑是如何让程序将向量中提供的所有信息打印到同一行的?这样它们就可以正确地组合在一起。与打印20个ID号、20个姓名、20个年龄不同?@Lukesimons查看我的新编辑,这将打印每个学生的信息,并带有选项卡(
'\t'
)在每列之间。
void Student::getSingleStudentInfo()
{
    cout << s.studentNumber << '\t'
         << s.lastName << '\t'
         << s.age << endl;
};