[英]C Calculator Error in scanf_s and printf with Visual Studio 2013
[英]scanf_s doesn't work with printf in Visual Studio C++ 2010 Express
我寫了這些代碼:
#include <stdio.h>
int main(void)
{
char input[50]={0};
scanf_s("%s",input);
printf("%s",input);
return 0;
}
當我在發布模式(Ctrl + F5)中運行它時,它不會打印任何內容,但是在調試模式(F5)中它可以打印任何內容,並且沒有錯誤。 在發布模式下,控制台屏幕如下所示:
abcd
Press any key to continue . . .
第一行是我的輸入,這是調試模式下的屏幕:
abcd
abcdPress any key to continue . . .
當我使用scanf而不是scanf_s時,它會在調試和釋放模式下進行打印。 我想念什么?
這個版本的scanf()
需要另一個參數,正確的調用方式是
scanf_s("%49s", input, 50);
並且scanf()
返回一個值,您不應忽略它,永遠不要
if (scanf_s("%49s", input, 50) == 1)
printf("%s\n", input);
另外,添加'\\n'
來刷新輸出流,而不需要fflush()
,並通過警告使您的編譯器盡可能令人討厭。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.