我有一个程序,它从char数组获取输入,使用strtok函数检查输入是否包含单词“up”或“down”。如果它包含单词“up”,则我的b值设置为false(即b = 0),并且我的c值也设置为false。如果char数组包含单词“down”,则b设置为false,但是我的c值设置为true(即c = 1)。两个If语句一次执行,而不是一个
当第一个if语句执行时,字符串中包含单词“up”,并在屏幕上打印结果字符时出现问题,但第二个如果还执行打印这些字符。任何输入在这个问题将不胜感激
编辑:同样的问题发生,如果我使用单词“向下”,这两个如果语句执行。
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;
}
您是否尝试过使用逐步调试器?你观察到了什么? – Dai 2015-02-11 03:44:34
不完全确定这是否可能(因为我正在编写我的树莓PI)。原谅我的无知,但我不熟悉所谓的“阶梯式调试器”。 – user20842454566 2015-02-11 03:47:19
@ user20842454566尝试学习使用gdb,作为C程序员的生活将变得如此简单。 – Snaipe 2015-02-11 08:03:55