如果有遇到一样情况的可以看看

P5740 【深基7.例9】最厉害的学生

Axolotlwww @ 2024-10-03 18:35:45

刚开始定义了这样一个结构体:

struct student{
    string name;
    int chinese,math,english;
    double getT(){
        return (chinese+math+english)/3.0;
    }
    void out(){
        printf("%s %d %d %d",name,chinese,math,english);
        return;
    }
}s[maxn];

但是发现编译错误

原因在这个printf(),不能直接传入string类型,要先用c_str()将string转为char[]并返回一个char指针。改为:

void out(){
    printf("%s %d %d %d",name.c_str(),chinese,math,english);
    return;
}

by AutiFancers @ 2024-10-03 18:40:17

主要原因是 string 是c++STL里的,printf是c语言的,肯定不能printf字符串。


|