2014-02-15 33 views
0

所以在linux下我大概可以結束while循環與這種類型的代碼,如果我用gcc編譯:如何在Windows中用Ctrl + D結束c程序?

#include <stdio.h> 

int main() 
{ 
    int s; 
    while(scanf("d%",&s)!=EOF); 
    { 
     scanf("%d",&s); 
      } 
    return 0; 
} 

然而,這並不與Windows電腦和Im使用的編譯工作,是微軟的Visual Studio 12 。 有什麼建議麼?

+1

任何錯誤的Alt + F4? (或者你在找什麼) –

+0

'scanf'不返回'EOF',你正在考慮'getchar' ... – zwol

+0

[Ctrl + D不能停止應用程序在命令窗口中執行]的可能重複(http ://stackoverflow.com/questions/12001894/ctrld-not-stopping-application-from-executing-in-command-window) –

回答

2
#include <stdio.h> 

int main() { 
    int s; 
    while((s = getchar()) != EOF) { 
     printf("%d\n", s); 
    } 
    printf("%d - at EOF\n", s); 
} 

你可以試試這個

+0

這工作,因爲它應該實際上,謝謝! – Tensora

+0

歡迎@Tensora –

+0

只是一個問題,如果我想在用戶輸入數據之前在whileloop中打印某些內容,那我該怎麼做?因爲現在它會提示用戶它在程序中的第一件事情? – Tensora

1

與STRG + C或STRG + Z試試吧。我認爲這是多餘的EOF

+0

並沒有任何工作對我來說,至少不是該代碼:( – Tensora

+1

^Z *,然後返回*在DOS窗口中相當於一個Unixy TTY ^d zwol

+0

奇怪的是,如果我創建了一個循環。 while(1> 0),Ctrl + c結束程序,你認爲我的老師會對此感到滿意嗎?:p – Tensora

相關問題