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就是該數組的大小。