VisualStdio中scanf报错问题





一. 概述

  1. 报错代码及说明

VisualStdio中scanf报错问题-LMLPHP

报错代码为C4996


  1. 会在哪种编译器中报错?

VisualStdio系列编译器


  1. 为什么会报错?

因为VisualStdio比较严谨,认为scanf不安全。


二. 解决方法

  1. 按照VisualStdio所言,将scanf换成scanf_s

VisualStdio中scanf报错问题-LMLPHP

报错解决。
优点:安全
缺点:代码无法跨平台


  1. 在有scanf函数的.c文件的第一行写#define _CRT_SECURE_NO_WARNINGS 1

VisualStdio中scanf报错问题-LMLPHP

报错解决。
优点:代码不会存在跨平台问题
缺点:每个.c文件前都要添加,比较麻烦


  1. 在newc++file.cpp文件中加入这一行#define _CRT_SECURE_NO_WARNINGS 1

VisualStdio中scanf报错问题-LMLPHP

报错解决。
优点:每次新建文件会自动有这一行
缺点:无


  1. 在.c文件的第一行写#pragma warning(disable: 4996)

VisualStdio中scanf报错问题-LMLPHP

报错解决。
优点:无
缺点:无
很少有人会这么用



本篇博客为本人解决VisualStdio中scanf报错问题时的详细记录,如有错误之处,还望各位指正。
文章为原创,如要转载请注明出处

06-11 20:36