这是我写的代码:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define SIZE 50
int main(int argc, char *argv[])
{
char str[SIZE];
char str2[] = "exit";
//fgets(str, sizeof str, stdin);
while (strcmp(str, str2) != 0)
{
fgets(str, sizeof str, stdin);
printf("%s", str);
}
return 0;
}
但它似乎没有退出,陷入了无限循环。
一种解决方案是使用:
char str2[]="exitn";
但最好是do - while
周期:
int main () {
char str[SIZE];
char str2[]="exitn";
do {
fgets(str, sizeof(str), stdin);
printf("%s",str);
} while(strcmp(str,str2));
return 0;
}
因为在你循环的第一次迭代中,str
是空的。