0

我试图要求用户输入,我需要这样做,以便如果用户键入exit,它会终止程序。

这是我所拥有的,但由于某种原因它不起作用:

int main(void) {
  char input[100];

  printf("Enter: ");

  while(fgets(input, 100, stdin)) {
    if(strcmp("exit", input) == 0) {
      exit(0);
    }
  }
}

为什么不退出?

4

3 回答 3

2

你做的一切几乎都是正确的。

问题是“fgets()”返回尾随换行符,并且“enter\n”!=“enter”。

建议:

请改用strncmpif (strncmp ("enter", input, 5) == 0) {...}

于 2013-09-23T00:29:53.970 回答
0

因为输入包含一个尾随 '\n'

  while(fgets(input, 100, stdin)) {
    char *p=strchr(input, '\n');
    if(p!=NULL){
        *p=0x0;
    ]
    if(strcmp("exit", input) == 0) {
      exit(0);
    }
于 2013-09-23T00:30:45.487 回答
0

使用scanf()

while(scanf("%s", input)) {
    printf("input : %s\n", input);
    if(strcmp("exit", input) == 0) {
        exit(0);
    }
}
于 2013-09-23T01:34:45.780 回答