循环跳过getchar以及指针和整数之间的比较

时间:2017-06-22 16:56:52

标签: c

所以我是c的新手,我对此代码有两个问题:

#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行,它表示&#34;警告:指针和整数之间的比较&#34;
  2. 只有1个输入(是你),没有别的我看到了:
  3. 方向:
    ü
    您当前的位置是:0,0
    方向:
    您当前的位置是:0,0
    方向:

1 个答案:

答案 0 :(得分:1)

首先,我假设你有#34; #include&#34;而不是&#34; import&#34;在第1行,&#34;回答&#34;而不是&#34; a&#34;在第12行。

要回答你的实际问题,在C char和string中是不同的。你有一个char类型的变量答案,你正在与字符串&#34; u&#34;进行比较。结果,编译器正在创建一个常量字符串&#34; u&#34;并将指向该字符串的指针与char类型变量answer进行比较。您的支票应该是

if(answer == 'u') {