首页 > 其他分享 >在vs2022中scanf和scnaf_s的区别

在vs2022中scanf和scnaf_s的区别

时间:2022-09-06 00:23:40浏览次数:77  
标签:scnaf name scanf vs2022 printf 字符串

 在C Primer Plus中有这样一代码在vs2022编写中出现的错误

/praise1.c--使用不同类型的字符串*/

#include <stdio.h>

$define PRAISE"You are an extrordinary being"

 

int main()

{

  char name[40];

  printf("What`s your name?");

  scanf_s("%s",name);

  printf("Hello,%s\n",name,PRAISE);

  return 0;

}

在vs2022中有一个警告scanf_s:没有为格式字符串传递足够的参数

解决办法:在使用%c和%s读入字符或字符串时,应在地址参数后附加一个缓冲区边界值。

scanf()不会检查输入边界,可能造成数据的溢出。

scanf_s会进行边界检查,调用该函数时,必须提供一个数字以表明最多读取多少位字符。

把上述的scanf_s("%s",name)改为scanf_s("%s",sizeof(name));即可

 

标签:scnaf,name,scanf,vs2022,printf,字符串
From: https://www.cnblogs.com/Hittler/p/16660212.html

相关文章

  • C语言:文件IO fprint()、fscanf()、fgets()、fputs()
    fprintf()和fscanf()函数文件I/O函数fprintf()和fscanf()函数的工作方式与printf()和scanf()类似,区别在于前者需要用第1个参数指定待处理的文件。下面演示了fprintf()和f......
  • VS2022编译太慢
    一个C++的helloworld,在vs里硬是10秒才能编译启动。不知道大家有没有遇到。禁用符号加载还是很慢。甚至换成code::block来编译运行也很慢。解决方法是把编译出的exe程序或......
  • OpenCV的Windows程序图像处理,Win32 SDK,VS2022
    Windows程序调用OpenCV进行图像捕捉和处理显示1.OpenCV的视频接口VideoCapture很简洁,显示可以直接把图片帧数据转换成BMP,用StretchDIBits显示,方便又灵活。2.Windows用......
  • vs2022 + python实现人脸识别简单练手
    vs2022需要安装python,c++python环境:3.7需要安装的包:cmake,boost,opencv-python,按顺序安装 代码importcv2importdlibimportosimportsysimportrandom#存储位置ou......
  • vs2022安装framework 4.5
    默认VisualStudio2022不再支持安装.NETFramework4.5 当我们项目是4.5框架时,22不支持,需要我们自行安装框架包,下面是步骤:nuget下载4.5安装包下载地址:https://ww......
  • lvgl在vs2022上的使用
    下载源码:https://github.com/fanlulin/lv_port_win_visual_studio.git使用git命令下载,下载之后,需要注意lvgl文件夹是否为空,为空则需要重新拉取打开.sln文件,选择vs2022......
  • vs2022附加到进程调试,设断点无效,或找不到w3wp.exe
    vs2022附加到进程调试,设断点无效,或找不到w3wp.exe1.调试—>选项—>调试,取消勾选“启动仅我的代码”2.原因是iis网站绑定的网站不是debug版本的,发布的时候需要选择debug......