c++学生管理小程序


#define _CRT_SECURE_NO_WARNINGS
#include 
#include 
using namespace std;
struct student
{
    int n;
    string name;
    int score1;
    int score2;
    float all;
};
int main()
{
    student a[10];
    for (int i = 0; i < 10; i++)
    {
        scanf("%d %s %d %d", &a[i].n,&a[i].name,  &a[i].score1, &a[i].score2);
    }

    for (int i = 0; i < 10; i++)
    {
        a[i].all = a[i].score1 * 0.4 + a[i].score2 * 0.6;
    }
    for (int i = 0; i < 10; i++)
    {
        printf("%d %s %d %d %.2f", a[i].n, a[i].name, a[i].score1, a[i].score2, a[i].all);
        printf("\n");
    }
    return 0;
}

img


为什么输出的名字是乱码啊,是代码哪里有错误吗

a[i].name 是string类型,
%s是输出 char* 类型的
不兼容。

string name改成char name[20]