我开始学习C语言,和短暂的休息之后,我开始温习一遍,我在坚持与新的更新。此代码不工作。我不明白现在怎么办。如果我从scanf函数改为scanf_s它不反正工作。我也试图改变类型的声明。是否有人在这里谁可以解释我怎么能更改此代码,现在用什么,scanf或scanf_s,以及在什么场合使用它们。提前致谢。
#include <stdio.h>
#define N 256
typedef struct
{
char name[N];
char surname[N];
char street[N];
char city[N];
char district[3];
int n_house;
int day, month, year;
} person;
main()
{
person s;
printf("ask name\n");
scanf("%s", s.name);
printf("ask sur\n");
scanf("%s", s.surname);
printf("ask wh h lives\n");
scanf("%s %s %s %d", s.street, s.city, s.district, &s.n_house);
printf("ask bd\n");
scanf("%d/%d/%d", &s.day, &s.month, &s.year);
printf("personal data of the person : \n");
printf("%s %s\n Nato il %d %d %d \n Vive in %s %s %s %d", s.name, s.surname, s.day, s.month, s.year, s.street, s.city, s.district, s.n_house);
}
该错误是C4996 scanf函数。此函数或变量可能是不安全的。考虑使用scanf_s代替。要禁用折旧,使用_CTR_SECURE_NO_WARNINGS。
我编译你的程序有一些小的修改:
#include <stdio.h>
#define N 256
typedef struct
{
char name[N];
char surname[N];
char street[N];
char city[N];
char district[3];
int n_house;
int day, month, year;
} person;
void main(void)
{
person s;
printf("ask name\n");
scanf("%s", s.name);
printf("ask sur\n");
scanf("%s", s.surname);
printf("ask wh h lives\n");
scanf("%s %s %s %d", s.street, s.city, s.district, &s.n_house);
printf("ask bd\n");
scanf("%d/%d/%d", &s.day, &s.month, &s.year);
printf("personal data of the person : \n");
printf("%s %s\n Nato il %d %d %d\nVive in %s %s %s %d\n",
s.name, s.surname,
s.day, s.month, s.year,
s.street, s.city, s.district, s.n_house);
return;
}
并与输入的工作原理:
ask name
george
ask sur
mac
ask wh h lives
barcelona sskk ksl 123
ask bd
12/13/1111
personal data of the person :
george mac
Nato il 12 13 1111
Vive in barcelona sskk ksl 123
这是你想的那种投入?