我需要有关C编​​程问题的帮助。我想知道是否有一种方法可以让用户在控制台上输入一个单词,并且它将显示您对其编程的内容。这是我想做的一个例子

int Choice;
int Energy = 100;
printf ("Type 2817!\n");
scanf ("%s", &Choice);

if(Choice == 2817)
{
    printf ("You have started the game\n\n\n\n\n\n\n\n\n\n\n");
}
else if(Choice == "Energy") //This isnt working in my compiler.
                                //Apparently the == sign is the underlined error
{
    printf("%d", Energy);
}


到目前为止,我只能键入数字,但是我希望能够键入单词并能够使用命令。所以基本上,我希望能够键入“ Energy”,它将显示您拥有的能量(printf(“%d”,Energy)

请帮忙,

感谢您的阅读。

最佳答案

我不确定您的程序正在尝试做什么,但是让我专注于一些明显不正确的行。

首先,在

int Choice;
scanf ("%s", &Choice);


您为Choice选择的类型有误:它是“ int”,而应为char的静态数组(例如char Choice [32])。在这种情况下,您还必须删除选中项中“选择”之前的“&”,以便代码变为:

char Choice[32];
scanf ("%s", Choice);


而且,在

else if(Choice == "Energy") //This isnt working in my compiler.


您正在尝试将两个字符串与运算符“ ==”进行比较。这在C语言中不起作用。您应该通过以下方式使用函数“ strcmp”:

#include<string.h>
[...]
else if(strcmp(Choice, "Energy")==0)


您甚至最好使用以下内容来防止缓冲区溢出

else if(strncmp(Choice, "Energy", 32)==0)


(用Choice中的最大元素数替换32)

编辑请注意,您也应该从

if(Choice == 2817)




if(strncmp(Choice, "2817", 32))


因为Choice不再是一个int了...

关于c - C编程:IF语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22057066/

10-12 20:54