scanf 返回值_scanf函数
一、函數
scanf()是C語言中的一個輸入函數。與printf函數一樣,都被聲明在頭文件stdio.h里,因此在使用scanf函數時要加上#include <stdio.h>。它是格式輸入函數,即按用戶指定的格式從鍵盤上把數據輸入到指定的變量之中。
函數的原型為:
int scanf(const char * restrict format, ...);函數的第一個參數是格式化字符串,它指定了輸入的格式,并按照格式說明符解析輸入對應位置的信息并存儲于可變參數列表中對應的指針所值位置,每一個指針要求非空,并且與字符串中的格式一一順次對應。
格式化字符串參考:
printf函數——二、Format?zhuanlan.zhihu.com補充:%[] 掃描字符集合。
函數返回值為整型。如果成功,返回成功匹配和賦值的個數;如果到達文件末尾或發生讀錯誤,則返回EOF。
如:scanf(“%d%d”, &a, &b);
如果只有a被成功讀入,返回值為1;如果a和b都未被成功讀入,返回值為0;如果遇到錯誤或遇到end of file,返回值為EOF。
二、注意事項
三、實戰
1. 警告 C6031 返回值被忽略:“scanf”。
原因:參考scanf函數返回值。
解決方案:
(1)采用以_s結尾的安全版本(推薦);
(2)根據scanf函數返回值判斷用戶輸入是否合法,作出相應處理。
2. 錯誤 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.
原因:這種微軟的警告,主要因為那些C庫的函數,很多函數內部是不進行參數檢測的(包括越界類),微軟擔心使用這些會造成內存異常,所以就改寫了同樣功能的函數,改寫了的函數進行了參數的檢測,使用這些新的函數會更安全和便捷。關于這些改寫的函數不用專門去記憶,因為編譯器對于每個函數在給出警告時,都會告訴相應的安全函數,查看警告信息就可以獲知,在使用時也在查看一下MSDN詳細了解。
解決方案:
(1)采用以_s結尾的安全版本(推薦);
(2)在頭文件包含的最前面(在include的前面)加上:#define _CRT_SECURE_NO_WARNINGS;
(3)在頭文件包含的最前面(在include的前面)加上:#pragma warning(disable:4996);
(4)通過以下步驟:調試->屬性->C/C++->預處理器->預處理器定義->編輯->輸入“_CRT_SECURE_NO_WARNINGS”->確定。
(4)第一、二步(4)第三、四、五、六步(4)第七、八、九步總結
以上是生活随笔為你收集整理的scanf 返回值_scanf函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 南瓜秧的功效与作用、禁忌和食用方法
- 下一篇: git maven 一键部署_Jenki