所以基本上,我有這個簡單的 Hello World 程式,當執行時,它輸出正確。
#include <stdio.h>
int main(){
printf("Hello");
}
Output: Hello
但是由于某種原因添加 scanf 命令會導致程式不輸出任何內容。它會顯示它正在運行,但它不會顯示任何內容。
#include <stdio.h>
int num1;
int main(){
printf("Enter number: \n");
scanf("%d", &num1);
printf("%d", num1);
}
輸出:
[Running] cd "d:\programming\" && gcc main.c -o main && "d:\programming\"main
我知道我的代碼沒問題,因為我在其他 IDE 上嘗試過它并且它作業正常。我什至從互聯網上復制了代碼并嘗試在 VSCode 中運行,但它仍然無法正常作業。昨天它仍然作業得很好,但這個問題無處不在。
我將 Visual Studio Code 1.62.3 與 C/C 、C/C Compile Run 和 Code Runner 擴展一起使用。
uj5u.com熱心網友回復:
這是一個緩沖問題。當標準輸出 ( stdout, 其中printfwrites) 連接到實際終端時,它是line-buffered,這意味著當有換行符時,輸出實際上是寫入終端。
但是,VSCode 可能使用自己的終端仿真并使用管道連接stdout到該終端。這意味著輸出將被完全緩沖,您需要明確地重繪 它。
所以修改代碼如下:
printf("Enter number: \n");
fflush(stdout); // Actually write the output to standard output
scanf("%d", &num1);
printf("%d", num1);
它適用于第一個示例是因為該程序終止,并且所有輸出都會自動重繪 。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/365504.html
