最近在参考C-Prime-Plus第六版重新学习C语言知识,环境为VS2019.
在处理这两个函数时遇到了一些问题.
VS2019在使用scanf()函数时会进行报错,替换成scanf_s()函数没有问题.
相比之下scanf_s()函数的安全性更高.
但是在编译这个程序时又出现了报错:0x00007FFF986F2172 (ucrtbased.dll)处(位于 Project_empty.exe 中)引发的异常:
// talkback.c -- 演示与用户交互
#include <stdio.h>
#include <string.h> // 提供strlen()函数的原型
#define DENSITY 62.4 // 人体密度(单位:磅/立方英尺)
int main()
{
float weight, volume;
int size, letters;
char name[40]; // name是一个可容纳40个字符的数组
printf("Hi! What's your first name?\n");
scanf_s("%s", name);
printf("%s, what's your weight in pounds?\n", name);
scanf_s("%f", &weight);
size = sizeof name;
letters = strlen(name);
volume = weight / DENSITY;
printf("Well, %s, your volume is %2.2f cubic feet.\n",
name, volume);
printf("Also, your first name has %d letters