我有一个程序从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;
}
答案 0 :(得分:1)
您的代码最有可能执行两次。赠品是你试过if / else。只有一个块永远在一次执行if语句时执行
。