在 C 语言中最多输入 256 个字符

  • 本文关键字:字符 语言 c io fgets getc
  • 更新时间 :
  • 英文 :


I/O 问题:

我被要求从用户那里获取输入并解析它。 问题是我的程序应该能够处理任何长度的输入,并将任何超过 256 个字符的输入行视为无效并相应地打印消息。

目前,我正在使用fgets来接收输入行,strtok稍后对其进行解析,但是输入行很长,这是一个问题。

我该如何解决这个问题?

到目前为止我的代码:

char userInput[1024];
char *token = NULL;
while (!feof(stdin)) {
fflush(stdin);
if (fgets(userInput, 1024, stdin) != NULL) {
token = strtok(userInput, " trn");
if (token != NULL) {

if (strncmp(userInput, "fiver", 5) == 0) {
printf("5");
}
else if (strncmp(userInput, "four", 4) == 0) { printf("4");}

有一个数组或 257 或 258 个字符(取决于是否计算这 256 个字符中的换行符(,并使用fgets读取它,传入大小为 257 或 258。然后用strlen()检查字符串的长度。如果strlen(buf)正好是包括换行符在内的行的最大长度,请检查第strlen(buf)-1个字符 - 如果是n则没问题,否则你的行太长了。


或者只用fgetc而不是fgets,一直数到'n'或256,以先到者为准。

最新更新