2014-10-27 69 views
0
int main() 
{ 
for (;;) 
    printf("This is a loop"); 
    //getch(); 
return 0; 
} 

從Codeblocks內部運行可執行文件,它不會返回任何內容,而是使程序無法使用,即掛起程序。預計不會這樣做。但是,如果可執行文件是從外部啓動的(直接雙擊.exe),它將返回print()文本。這意味着系統或代碼塊無法處理此循環或可執行文件,或者可執行文件可能有某種錯誤。但我不明白爲什麼在從代碼塊執行時編譯是正確的。可執行文件本身是32位(x86),並且從32位或64位cmd運行它不會做出更改。使用代碼塊編譯並運行無限循環

我也嘗試過與eclipse等相同。但IDE的結果相同。

+2

意味着該代碼去下去嗎?你寫它的方式,它會。沒有什麼可以阻止循環 – 2014-10-27 18:19:17

+0

嗨DJ Burb,感謝您的評論。它只是一個測試循環;它可以在沒有任何終止條件下運行,否則它需要任何手動干預來退出程序或循環。我知道。爲了您的信息:請考慮以下: '#包括 的#include 的#include INT主要(無效){ 焦炭 命令[80],溫度[80]。 int i,j; (;;){ printf(「您要執行哪個操作?\ n」); (命令); (!strcmp(command,「quit」))break;如果用戶想要終止程序**/ if(!strcmp(command,「quit」))break; } return 0; }' – Sayeed 2014-10-27 18:30:06

+0

請不要在評論中放入代碼。它沒有格式化爲源代碼,很難閱讀。另外,我認爲無限循環+常量I/O是當您運行可執行文件時導致您的IDE掛起的原因。 – 2014-10-27 18:30:06

回答

1

stdout通常會被緩衝,直到您打印換行符\n或您致電fflush(stdout)。此外,根據IDE如何處理stdout,在無限循環中打印可能會導致其他問題。

我建議你改變環路

for (int i = 0; i < 10; i++) 
    printf("This is a loop\n"); 
+0

@ user3386109非常感謝您的回答。雖然它是正確的,但我正在尋找無限循環的解決方案。 – Sayeed 2014-10-27 18:58:56