【发布时间】:2015-02-11 03:42:51
【问题描述】:
我有一个从 char 数组获取输入的程序,使用 strtok 函数检查输入是否包含单词“up”或“down”。如果它包含单词“up”,则我的 b 值设置为 false(即 b = 0)并且我的 c 值也设置为 false。如果 char 数组包含单词“down”,则 b 设置为 false,但是我的 c 值设置为 true(即 c=1)。
我的问题发生在字符串中包含单词“up”时,因为第一个 if 语句执行,并在屏幕上打印结果字符,但不知何故,第二个 if 也执行打印这些字符。对此问题的任何意见将不胜感激
编辑:如果我使用“down”这个词,就会出现同样的问题,两个 if 语句都被执行。
int moveC(int y, int x, int b, int i, int c) {
// int c is a static variable(static int c = FALSE;) defined in the previous function
int j;
int k;
switch (b) //assume b is always false (which it is)
{
case FALSE:
if (c == 0) {
mvprintw(y, x, "^");
refresh();
for (j = 1; j <= i; j++) {
mvprintw(y + j, x, ".");
refresh();
}
break;
}
if (c == 1) //tried using else if, same result
{
mvprintw(y, x, "^");
refresh();
for (j = 1; j <= i; j++) {
mvprintw(y - j, x, ".");
refresh();
}
break;
}
}
return 0;
}
【问题讨论】:
-
您是否尝试过使用逐步调试器?你观察到了什么?
-
不完全确定这是否可能(因为我在我的树莓派上编码)。请原谅我的无知,但我对所谓的“逐步调试器”并不熟悉。
-
@user20842454566 尝试学习使用 gdb,你作为 C 程序员的生活会轻松很多。
标签: c user-interface if-statement int case