我试图要求用户输入,我需要这样做,以便如果用户键入exit
,它会终止程序。
这是我所拥有的,但由于某种原因它不起作用:
int main(void) {
char input[100];
printf("Enter: ");
while(fgets(input, 100, stdin)) {
if(strcmp("exit", input) == 0) {
exit(0);
}
}
}
为什么不退出?
我试图要求用户输入,我需要这样做,以便如果用户键入exit
,它会终止程序。
这是我所拥有的,但由于某种原因它不起作用:
int main(void) {
char input[100];
printf("Enter: ");
while(fgets(input, 100, stdin)) {
if(strcmp("exit", input) == 0) {
exit(0);
}
}
}
为什么不退出?
你做的一切几乎都是正确的。
问题是“fgets()”返回尾随换行符,并且“enter\n”!=“enter”。
建议:
请改用strncmp: if (strncmp ("enter", input, 5) == 0) {...}
因为输入包含一个尾随 '\n'
while(fgets(input, 100, stdin)) {
char *p=strchr(input, '\n');
if(p!=NULL){
*p=0x0;
]
if(strcmp("exit", input) == 0) {
exit(0);
}
使用scanf()
:
while(scanf("%s", input)) {
printf("input : %s\n", input);
if(strcmp("exit", input) == 0) {
exit(0);
}
}