为什么VS2013告诉我使用scanf_s?

 高玉成 发布于 2023-02-01 23:02
  • php
  • 我在德克萨斯理工大学的编程课上,在上学期学习Python之后,我终于进入了C++课程.当我们今天在课堂上制作一个HelloWorld程序时,我和其他一些人得到了Microsoft Visual Studio 2013告诉我们使用scanf_s而不是scanf,就像教师在他的程序中使用的一样.下面是我的代码.

    #include 
    int main(){
    
    int i,j;
    float x,y;
    scanf("input a number: %d %d %f %f", &i, &j, &x, &y);
    
    printf("print numbers a : %d \n",i);
    printf("print numbers a : %10.3d \n", i);
    printf("print numbers a : %-10.3d", i);
    
    fflush(stdin);
    getchar();
    return 0;
    }
    

    TypeIA.. 9

    _s系列函数是由微软提供的标准库函数"安全"的变种.许多标准库函数不被认为是安全的,因为它们不允许或不要求用户防止缓冲区溢出.该_s功能的替代品,允许/需要的缓冲区溢出保护(通常这意味着他们需要一个额外的参数指定要传递的缓冲区的大小,但在的情况下,scanf_s()它要求的格式字符串包含每个宽度说明%c,%C,%s%S参数).

    您可以通过_CRT_NONSTDC_NO_WARNINGS在项目设置中设置define 来禁用这些警告.或者,如果您选择,请切换到这些_s功能(但请注意,这样做会将您的代码绑定到Microsoft运行时库[或C11;请参阅下面的注释],并使其不可移植).

    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    热门标签
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有