gpt4 book ai didi

c - 输入/输出问题

转载 作者:太空宇宙 更新时间:2023-11-04 05:43:51 25 4
gpt4 key购买 nike

#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();

我有几个我无法处理的问题:

  1. 当我按下 Enter 时,它会停止循环并且不会打印 command not found 消息。
  2. 当我输入一个大于 30 个字符的命令时,它会打印出 command not foundcommand length must be less than or equal to 30 characters 消息.
  3. 当我输入 64 位大小的命令时,它会打印两次 30 位长度的消息。

我相信它将输入分成 30 个长度的段并输入每个段,我该如何克服它?我试图刷新 stdin,它不起作用。我想摆脱其余的输入。我该如何克服所有这些问题?

最佳答案

对于你的第二个问题,这是因为 fgets 首先获取 31(MAX_COMMAND_LEN,减去终止 '\0' 字符的空间)字符,您会注意到它不是换行符,下一次循环 fgets 获取剩余的字符。

关于c - 输入/输出问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10992062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com