如果字符输入正确,C程序应该启动
我是一名新的编码人员,我有一个任务,如果char输入正确,并且有四种意见支持输入,则应该进一步执行该任务:。 如果输入是这四种输入之一,则程序应继续运行。 我已经试过了,但问题是我总是在程序开始之前输入所有四个字符。 有人有解决办法吗如果字符输入正确,C程序应该启动,c,C,我是一名新的编码人员,我有一个任务,如果char输入正确,并且有四种意见支持输入,则应该进一步执行该任务:。 如果输入是这四种输入之一,则程序应继续运行。 我已经试过了,但问题是我总是在程序开始之前输入所有四个字符。 有人有解决办法吗 compare_j = strcmp(str_1, input) compare_N = strcmp(str_3, input) ... ... while (compare_j != 0|| compare_N != 0 || compare_j != 0
compare_j = strcmp(str_1, input)
compare_N = strcmp(str_3, input)
...
...
while (compare_j != 0|| compare_N != 0 || compare_j != 0 || compare_J != 0)
{
printf("wrong input!\n");
scanf("%s", &input[0]);
}
您的程序可能有几个其他错误,但您可以尝试以下方法:
while (compare_j != 0 && compare_N != 0 && compare_j != 0 && compare_J != 0)
尝试使用do-while循环,移动输入,比较内部内容。你的退出条件也是错误的。您正在检查所有的
char
s是否同时匹配,这是不可能的
您正在检查两次compare\u j
,而不是compare\n
int compare_j;
int compare_J;
int compare_n;
int compare_N;
do {
// Read input
scanf("%s", &input[0]);
// Compare
compare_j = strcmp(str_1, input);
compare_N = strcmp(str_3, input);
..
..
}while(compare_n == 0 || compare_N == 0 || compare_j == 0 || compare_J == 0);
这样,您可以检查这些字符是否匹配,如果不匹配,则退出。同样,在循环中移动输入/比较函数,您不需要写两次。您没有在循环中更改任何
compare.*
变量的值您也在检查compare.\j
的结果两次,可能永远不会检查小写的“n”。同样,正如建议的注释一样,您可能应该重新计算loopdo中的strcmp(…),while确实更好,但while()条件是错误的