咱們在VS2017中若是使用C語言的scanf輸入函數,編譯的時候編譯器會報error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 這個是由於VS使用的是C11新標準致使的ios
解決方法以下數組
一、在文件頭部添加#pragma warning(disable : 4996) 這一行來關閉C4996類型的警告ide
二、在項目"屬性"-"配置屬性"-"C/C++"-"命令行"-「其餘選項」中添加/D_CRT_SECURE_NO_WARNINGS 來關閉整個項目C4996類型的警告函數
三、直接將代碼中的scanf函數修改爲scanf_s函數,scanf_s的具體用法以下spa
#include <iostream> #include <Windows.h> int main(void) { int x; scanf_s("%d", &x); //不須要使用第3個參數,用法和scanf相同 float f; scanf_s("%f", &f); //不須要使用第3個參數,用法和scanf相同 char c; scanf_s("%c", &c, sizeof(c)); //須要使用第3個參數,不然有告警 char name[16]; scanf_s("%s", name, sizeof(name)); //須要使用第3個參數(指定字符數組的長度,防止內存越界) int age; char addr[16]; scanf_s("%d%s", &age, addr, sizeof(addr)); system("pause"); return 0; }