2012-06-27 75 views
0

我很喜歡編程,嘗試使用這個簡單的c語言代碼,並使用gnu編譯器進行編譯。這裏是我的代碼:gcc:輸入錯誤

/*simple program:trying to printf string and get a letter*/

#include "stdio.h" 

int main() 
{ 
    int i=0; 
    char c; 

    while(i++<100){ 
     if(i % 2) 
      printf("%C this is even number",i); 
     if(i==50){ 
      c=getchar(); 
      printf("you enter %c letter",c); 
      } 
    } 
    return 0; 
} 

然而,當我用gcc編譯並在終端上運行,它不顯示任何東西,沒有錯誤,沒有報警。我試圖通過改變我的代碼的行爲方式,但仍然無法正常工作。它是錯誤的代碼或海灣合作委員會有錯誤或可能是我想念的東西?

回答

3

嘗試把一個換行符在printf文本的末尾:

printf("%C this is even number\n",i); 

而且iint因此使用%d格式:

printf("%d this is even number\n",i); 

編輯:我只是測試這與這些變化和它適用於我。

+0

哦謝謝,這是解決一切。雖然當我只想用'getchar()'得到輸入時,終端不顯示任何字母,只是下一個提示。這讓我感到困惑,因爲我只是從Windows基礎操作系統遷移而來,不知道linux和gcc的環境。 – silverthunder01

0

您應該在顯示後打電話fflush(stdout)

+0

無論如何,添加他可能想要的'\ n',會照顧到這一點。 – ugoren

0

它在Windows Vista下使用cygwin運行。

我把你的代碼粘貼到名爲test.c的文件中,然後運行gcc test.c,輸出一個名爲a.exe的文件,然後我運行它。

[email protected] ~ 
$ ./a.exe 
this is even number♥ this is even number♣ this is even number this is even numb 
this is even numbern this is even number◄ this is even number this is even numb 
er this is even number this is even number↓ this is even numberthis is even numb 
er this is even number this is even number! this is even number# this is even nu 
mber% this is even number' this is even number) this is even number+ this is eve 
n number- this is even number/ this is even number1 this is even number 
you enter 
letter3 this is even number5 this is even number7 this is even number9 this is 
even number; this is even number= this is even number? this is even numberA this 
is even numberC this is even numberE this is even numberG this is even numberI 
this is even numberK this is even numberM this is even numberO this is even numb 
erQ this is even numberS this is even numberU this is even numberW this is even 
numberY this is even number[ this is even number] this is even number_ this is e 
ven numbera this is even numberc this is even number 
[email protected] ~ 
+0

謝謝,但我的程序不運行,它用gcc linux編譯。 – silverthunder01

+0

嘗試在while語句之前放置一個** printf(「Hello world \ n」); **以查看是否開始執行程序。 – HeatfanJohn

+0

如果我是奇數(餘數爲1),則「If(i%2)」爲真。 – HeatfanJohn