#define MAX_COMMAND_LEN 32
char command[MAX_COMMAND_LEN];
while (1) {
if (fgets(command, MAX_COMMAND_LEN, stdin) == NULL) {
perror("Error: standard function fgets has failed\n");
break;
}
if (command[strlen(command) -1] != '\n') {
printf("Error: command length must be less than or equal to 30 characters\n");
continue;
}
else {
printf("Error: command not found\n");
}
}
quit();
我有几个我无法处理的问题:
- 当我按下Enter时,它会停止循环并且不打印
command not found
消息。 - 当我输入一个大小超过 30 个字符的命令时,它会同时打印 the
command not found
和command length must be less than or equal to 30 characters
消息。 - 当我输入一个 64 大小的命令时,它会打印两倍 30 长度的消息。
我相信它将输入分成30个长度的段并输入每个段,我该如何克服它?我试图冲洗stdin
,它不起作用。我想摆脱其余的输入。我如何克服所有这些问题?