1.scanf()不會檢查輸入邊界,可能造成數據溢出。scanf_s()會進行邊界檢查。
_s”后綴的函數是為了讓原版函數更安全,傳入一個和參數有關的大小值,避免引用到不存在的元素,防止hacker利用原版的不安全性(漏洞)黑掉系統。
2.scanf的調用格式為:scanf("<格式化字符串>",<地址表>)。
scanf_s()用於讀取字符串時,必須提供一個數字以表明最多讀取多少位字符,以防止溢出。
scanf_s("%s" , buffer,128);//此處必須加上128,表示最多可以讀取128位,不然運行會報錯。