當前位置:編程學習大全網 - 網站源碼 - c語言scanf和scanf_s的區別,詳解

c語言scanf和scanf_s的區別,詳解

1、使用區別

scanf()不會檢查輸入邊界,可能造成數據溢出。

scanf_s()會進行邊界檢查。

2、意思

scanf表示從鍵盤輸入指定格式的數據。如:scanf("%d",x);指從鍵盤給x輸入壹個int型(整型)數據;scanf("%f",x);指從鍵盤給x輸入壹個float型(實型)數據;

對應的輸出為:printf?按照指定的格式輸出數據;如printf("%d",x);?指按整型數據輸出X中的值。

因為帶“_s”後綴的函數是為了讓原版函數更安全,傳入壹個和參數有關的大小值,避免引用到不存在的元素,防止hacker利用原版的不安全性(漏洞)黑掉系統。

3、scanf_s()參數與scanf()不同

例如scanf(“%s”,&name,n),整形n為name類型的大小,如果name是數組,那n就是該數組的大小。

  • 上一篇:unity ugui怎麽用代碼改變層級關系
  • 下一篇:洛杉磯湖人隊現役球員的名字及號碼!
  • copyright 2024編程學習大全網