我在使用C读取字符时遇到问题。我需要询问用户输入,直到用户给我'x'或'X'停止。
char input[size] = {};
printf("Type 'x' or 'X' to stop input mode.\n");
while(strcmp(input,"x")!=0||strcmp(input,"X")!=0){
printf(":");
scanf("\n%c", &input);
}
但它仍然无效。
答案 0 :(得分:1)
根据评论进行编辑。
char input = getchar();
while( input != 'x' && input != 'X' ) {
// your code
input = getchar();
}
答案 1 :(得分:1)
input
变量在没有方括号的情况下使用时已经是指针,您不需要使用&
。
在进入while循环之前,必须初始化input
。
答案 2 :(得分:0)
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#ifdef CHAR_BASE
int main(){
char input = 0;
printf("Type 'x' or 'X' to stop input mode.\n");
while(tolower(input) != 'x'){
printf(":");
scanf(" %c", &input);
}
return 0;
}
#else //STRING_BASE
int main(){
char input[16] = {0};
printf("Type 'x' or 'X' to stop input mode.\n");
while(strcmp(input,"x") && strcmp(input,"X")){
printf(":");
scanf("%s", input);
}
return 0;
}
#endif