关于c primer plus4.1的程序无法运行

img

img
(原书是没有用scanf_s的,这vs显示错误才换的

scanf_s("%s",name,40);
scanf_s函数输入字符串时,必须指定允许的字符串长度

scanf是以前的写法。
scanf_s是为了防止内存溢出的新写法。如果不想直接用scanf_s
可以使用
#pragma warning(disable:4996)
加在头文件上。
scanf_s还需要一个参数,是输入的长度。

#include<stdio.h>
#include<cstring>
 
struct Student
{
    char name[10];
    char sex[10];
    int age;
    char city[10];
    char grade[10];
};
 
int main()
{
 
    struct Student stu1;
 
    printf("请输入姓名:");
    scanf_s("%s", &stu1.name,10);
 
    printf("请输入性别:");
    scanf_s("%s", &stu1.sex,10);
 
    printf("请输入年龄:");
    scanf_s("%d", &stu1.age,4);
 
    printf("请输入城市:");
    scanf_s("%s", &stu1.city,10);
 
    printf("请输入年级:");
    scanf_s("%s", &stu1.grade,10);
 
 
    printf("姓名:%s\n", stu1.name);
    printf("性别:%s\n", stu1.sex);
    printf("年龄:%d\n", stu1.age);
    printf("城市:%s\n", stu1.city);
    printf("年级:%s\n", stu1.grade);
 
    return 0;
}