scanf()在vs2013里报错,编译器提示要用scanf_s代替;
scanf_s()参数与scanf()不同;
例如scanf(“%s”,&name,n),整形n为name类型的大小,如果name是数组,那n就是该数组的大小。
#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; } 输出结果: 请输入姓名:zhu 请输入性别:nv 请输入年龄:1 请输入城市:beijing 请输入年级:1 姓名:zhu 性别:nv 年龄:1 城市:beijing 年级:1 请按任意键继续. . .
否则程序运行,输入数据之后就会停止运行。