#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();
我有幾個問題,這我不能夠處理:輸入/輸出問題
- 當我按下回車,它停止循環,不打印
command not found
消息。 - 當我輸入一個大於30個字符的命令時,它將輸出
command not found
和command length must be less than or equal to 30 characters
消息。 - 當我輸入一個64尺寸的命令時,它打印兩次30長度的信息。
我相信它把輸入分爲30段並輸入每一段,我該如何克服它?我試圖沖洗stdin
,它不起作用。我想擺脫其餘的輸入。我如何克服所有這些問題?
不要嘗試刷新stdin,它會調用UB。 – SuperSaiyan