2017-06-22 111 views
0
之間

所以,我是新來的C和我有2個問題與此代碼:While循環跳過的getchar和比較指針和整數

#import <stdio.h> 

int main(){ 
    char answer; 
    int playerX = 0; 
    int playerY = 0; 
    int done = 0; 
    char direction[] = "none"; 

    while (done == 0){ 
     printf("Direction:\n"); 
     a = getchar(); 

     if (answer == "u"){ 
      playerY += 1; 
     } else{ 

     } 
     printf("Your current position is: %d,%d\n", playerX, playerY); 
    } 

    return 0; 
} 
  1. 第14行它說:「警告:指針之間的比較和整數」
  2. 由於只有1個輸入(即U),並沒有別的我看到這一點:

方向:
ü
你當前的位置是:0,0
方向:
您當前的位置是:0,0
方向:

+0

'「u」'是字符串文字。 ''u''是一個字符常量。 –

+1

您也輸入了換行符。 – BLUEPIXY

+1

'a = getchar()'。也許你的意思是:'answer = getchar()'? –

回答

1

首先,我假設你有「#包括」而不是「進口」在第1行和「答案」,而不是第12行中的「a」。

要回答你的實際問題,在C字符和字符串是不同的。你有一個char類型的變量答案,你正在比較字符串「u」。因此,編譯器正在創建一個常量字符串「u」,並將指向該字符串的指針與char類型的變量answer進行比較。您的支票應該改爲

if(answer == 'u') {