vs2017上無法使用scanf()函數,但是提供了scanf_s()函數,在使用scanf_s()讀取二維數組時遇到了以下問題
代碼:
int main()
{
char a[10][5]; //定義一個二維數組
scanf_s(“%s",a[1]); //輸入一個字元串到第二行
printf(”%s“,a[1]);
return 0;
}
上述代碼文法上并沒有什麼問題,但是執行時報錯。
解決方法
給scanf_s函數制定一個參數,告訴編譯器預留多大的空間來存儲字元串sizeof()或直接給定一個數字大小,夠用就可以。
代碼:
int main()
{
char a[10][5]; //定義一個二維數組
scanf_s(“%s",a[1],sizeof(a[0]); //輸入一個字元串到第二行
printf(”%s“,a[1]);
return 0;
}
運作結果: