我试图在这里找到错误,但仍然没有得到它。我一直在调试和搜索它并找到了一些接近的主题,但只有我不需要 ATM 的解决方案,我很好奇为什么这段代码不起作用:
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#define BUFFER 256
int main()
{
int missionCode;
char *desc = (char*)malloc(sizeof(char)*BUFFER);
do {
printf("Please enter the mission code (or -1 for exit): ");
scanf("%d", &missionCode);
fflush(NULL);
if (missionCode==-1)
return 1;
} while (missionCode>10);
do {
printf("Please enter a string:\n");
scanf("%[^\n]s", desc); //it doesn't stop here!
fflush(NULL);
if (!strcmp("exit",desc))
return 1;
} while (strlen(desc)<20);
printf("your string:\n%s", desc);
return 0;
}
第二个循环中的 scanf\flushall 有问题,但我不知道是什么问题。顺便说一句,这当然是 C。