ylww

随笔仅作学习记录,请辩证参考!!!

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

问题:scanf在vs中出现报错问题,过不了编译。

原因:vs使用的是更安全的c11标准,认为这类函数不安全。

解决方案:1.使用修改项目的属性,直接使用这些“不安全”的函数。

添加:/D_CRT_SECURE_NO_WARNINGS

 

 

2.使用c11标准中的“更安全”的函数

scanf_s:

int x;

scanf_s("%d", &x);  //不需要使用第3个参数,用法和scanf相同

 

float  f;

scanf_s("%f", &f);  //不需要使用第3个参数, 用法和scanf相同

 

char c;

scanf_s("%c", &c, sizeof(c)); //需要使用第3个参数, 否则有告警

 

char name[16];

scanf_s("%s", name, sizeof(name)); //需要使用第3个参数,否则若输入太多会越界时也会将所有数据强行输入name中

 

int age;

char name[16];

scanf_s("%d%s", &age, name, sizeof(name));

与之类似的是gets函数,要使用gets_s

char line[32];

gets_s(line, sizeof(line));  //以防line越界

posted on 2022-04-22 13:00  理想主义者光芒万丈  阅读(49)  评论(0)    收藏  举报