我正在尝试询问用户输入,我需要这样做,以便在用户输入exit
时,它会终止程序。
这就是我所拥有的,但由于某种原因它不起作用:
int main(void) {
char input[100];
printf("Enter: ");
while(fgets(input, 100, stdin)) {
if(strcmp("exit", input) == 0) {
exit(0);
}
}
}
为什么不退出?
答案 0 :(得分:2)
你正在做所有 ALMOST 。
问题是“fgets()”返回尾随换行符,并“输入\ n”!=“输入”。
建议:
改为使用strncmp:if (strncmp ("enter", input, 5) == 0) {...}
答案 1 :(得分:0)
因为输入包含尾随'\ n'
while(fgets(input, 100, stdin)) {
char *p=strchr(input, '\n');
if(p!=NULL){
*p=0x0;
]
if(strcmp("exit", input) == 0) {
exit(0);
}
答案 2 :(得分:0)
使用scanf()
:
while(scanf("%s", input)) {
printf("input : %s\n", input);
if(strcmp("exit", input) == 0) {
exit(0);
}
}