gpt4 book ai didi

c++ - C++中char变量输入后程序执行结束

转载 作者:太空宇宙 更新时间:2023-11-03 10:22:29 25 4
gpt4 key购买 nike

我写了一个程序,请求学生的姓名和他的分数。一切都顺利编译,但在执行后,程序只询问名称,然后停止。

#include <iostream>

int main(){
class student{
public :
char *name;
int marks1; int marks2;

student(char* n, int n1, int n2){
name=n, marks1=n1, marks2=n2;
}

int calc_med(){return (marks1+marks2)/2;}

void display(){
std::cout<<name<<"\n The mediane is >> "<<calc_med()<<"\n";
}
};

char *name1;
std::cout<<"Enter the student's name > ";
std::cin>>name1;
int m1;
std::cout<<"Enter the first mark > ";
std::cin>>m1;
int m2;
std::cout<<"Enter the second mark > ";
std::cin>>m2;


student student1(name1,m1,m2);
student1.display();

return 0;
}

最佳答案

您需要分配name(或可能是name1)。

有很多方法可以做到这一点,但最好的方法是 a) 使用 std::string:


std::string name;

或者 b) 把名字变成一个数组:

char name[BUFFER_SIZE]; // BUFFER_SIZE is some constant

注意:b) 可能需要一些特殊的逻辑来确保您不会超过 BUFFER_SIZE,但我会把它留给您来解决。

关于c++ - C++中char变量输入后程序执行结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58418300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com