scanf與scanf_s的區別


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

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

2.scanf的調用格式為:scanf("<格式化字符串>",<地址表>)。

 scanf_s()用於讀取字符串時,必須提供一個數字以表明最多讀取多少位字符,以防止溢出。

 scanf_s("%s" , buffer,128);//此處必須加上128,表示最多可以讀取128位,不然運行會報錯。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM