最近重新回顾一下C语言,使用环境为visual studio 2019。
随着版本的更新,输入函数也出现了一些改变。目前一共有两种改动,后续的发现也会补充。
- 警告 C6031 返回值被忽略: “scanf”。
这一输入方式本来是很普通的方式,但是在这边就编译不通过,通过查询现在的VS2019使用方式,你需要告诉编译器,这是安全的输入,所以只需要将 scanf 改成 scanf_s 即可。
- 0x7A47D4EC (ucrtbased.dll)处(位于 Day_1_10.exe 中)引发的异常: 0xC0000005: 写入位置 0x00500000 时发生访问冲突。
- 0xFEFEFEFE 处有未经处理的异常(在 Day_1_10.exe 中): 0xC00001A5: 检测到无效的异常处理程序例程。 (参数: 0x00000003)。
此次错误发生在给一个字符数组输入数据时发生的。
char name[40];
scanf_s("%s", name);
编译时在输入字符串时就会出现以上错误,修改方式为
char name[40];
scanf_s("%s", name,40); //用于记录字符串的长度
修改之后就能顺利的编译通过使用了