1
我試過這段代碼,但它不工作。調用scanf_s()與字符數組
char word1[40];
printf("Enter text: \n");
scanf_s("%s", word1);
printf("word1 = %s", word1);
當我執行它,它表明:
word1 =
我試過這段代碼,但它不工作。調用scanf_s()與字符數組
char word1[40];
printf("Enter text: \n");
scanf_s("%s", word1);
printf("word1 = %s", word1);
當我執行它,它表明:
word1 =
如果你仔細閱讀MSDN documentation of scanf_s()
,你會發現,你必須提供該字符串緩衝區的長度:
不同於scanf函數和wscanf,scanf_s和wscanf_s所需要的緩衝器大小 爲所有INP指定ut類型的參數c,c,s,S或字符串 用[]括起來的控制集。以字符爲單位的緩衝區大小爲 作爲附加參數傳遞,緊接在指向緩衝區或變量的指針 之後。
調整您的通話scanf_s()
如下:
scanf_s("%s", word1, _countof(word1));
這應該工作。
(注意:_countof()
需要包括<stdlib.h>
)
這聽起來很愚蠢,但你輸入任何東西,當它提示? –
如果你使用C++,你通常應該使用'std :: string'和iostreams來輸入/輸出。 – crashmstr