2017-04-04 12 views
0

的使用輸入的getchar()有一點麻煩,很困惑,爲什麼這不會工作。該代碼將接受輸入並打印輸入,而不包含任何小寫元音。Devowelling用C

#include <stdio.h> 
int main (void) { 
    int i=getchar(); 
     while (i != EOF) { 
      if(i!='a' && i!='e' && i!='i'&&i!='o' && i!='u') { 
       printf("%c", i); 
       i=getchar();  
      } 
     } 

} 
+3

看起來像你的第二個呼叫'的getchar()'需要是'if'聲明之外。 – eatcrayons

+0

錯誤報告應該有三件事。 (1)顯示問題的最小代碼示例。檢查。 (2)你期望發生什麼。檢查。 (3)實際發生了什麼。失蹤。 – paxdiablo

+0

相信技術術語是「disemvowelling」。 –

回答

1

檢查if聲明。

如果輸入的字符不在{A,E,I,O,U}然後打印的字符,並得到一個新的角色。但是你真的想每次都通過循環獲得新角色。由於i當它是一個元音沒有改變,代碼將永遠運行下去 - 從來沒有達到EOF

的修復只是if語句之後的呼叫轉移到getchar()到。