日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

scanf 返回值_scanf函数

發布時間:2023/12/4 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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。


二、注意事項

  • scanf的雙引號內永遠不要加“非輸入控制符”。除了“輸入控制符”之外,什么都不要加,否則就是自找麻煩,而且對于用戶而言,肯定是輸入越簡單越好。在scanf中,所有的“非輸入控制符”都必須要原樣輸入;
  • 參數的個數一定要對應。無論在順序上,還是在個數上,一定要一一對應;
  • 輸入的數據類型一定要與所需要的數據類型一致,對于輸入的數據類型是用戶輸入的,所以在寫程序時要考慮容錯處理;
  • 在使用scanf之前使用printf提示輸入,可以大大提高代碼的質量。

  • 三、實戰

    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函数的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。