This question already has answers here:
Single quotes vs. double quotes in C or C++
                                
                                    (12个答案)
                                
                        
                                2年前关闭。
            
                    
我正在尝试学习c,我想用一个字符做yesno。这是我的代码:

我试过了

#include <stdio.h>
#include <stdlib.h>

//just playing

int main()
{
    char yesno;
    printf("TEST [Y/n] ");
    scanf(" %c", &yesno);
    if(yesno == "y") {
        printf("You did yes!!");
    } else if(yesno == "n") {
        printf("You did no!");
    } else {
        printf("Not valid!!!");
    }
    return 0;
}


它会自动跳到其他
为什么是这样

更新:我不知道这是重复的。 idk是什么双引号和单打之前

最佳答案

这里

yesno == "y"


您正在将一个字符yesno与字符串"y"进行比较。它应该是

yesno == 'y'  /* use single quotation instead of double quotation */


旁注始终以最少低于标志的形式编译您的代码,并且不要忽略警告,对这些警告进行操作。例如

gcc -Wall -Wstrict-prototypes -Wpedantic -Werror test.c


其中Werror将警告转换为错误并停止编译,因此您不应跳转到输出并强迫您阅读和解决编译器错误消息。

关于c - 我不能在学习c的时候答对了,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53919534/

10-11 21:01