scanf_s函數是C11標準中新增加的安全輸入函數,用于從標準輸入中讀取數據。
它的函數原型為:
int scanf_s(const char* format, …);
scanf_s函數的用法與scanf函數類似,但是scanf_s函數在讀取數據時會進行參數檢查,防止緩沖區溢出。scanf_s函數與scanf函數的主要區別在于,scanf_s函數需要額外傳入要讀取數據的緩沖區大小。
下面是一個scanf_s函數的使用示例:
#include <stdio.h>
int main() {
int num;
printf(“請輸入一個整數:”);
scanf_s(“%d”, &num, sizeof(int));
printf(“你輸入的整數是:%d\n”, num);
return 0;
}
在這個例子中,我們首先聲明了一個整型變量num,然后使用scanf_s函數從標準輸入中讀取一個整數,并將其保存到num變量中。sizeof(int)用于指定緩沖區的大小,確保讀取數據時不會發生緩沖區溢出。
需要注意的是,scanf_s函數必須在支持該函數的編譯器環境下才能使用。對于不支持scanf_s函數的編譯器,可以考慮使用其他安全輸入函數,或者自行編寫輸入檢查代碼來保證輸入的安全性。