gpt4 book ai didi

c - C中最多输入256个字符

转载 作者:行者123 更新时间:2023-12-02 09:11:08 24 4
gpt4 key购买 nike

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, " \t\r\n");
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(以先到者为准)。

关于c - C中最多输入256个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52089865/

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