【问题标题】:Input of maximum 256 characters in C在 C 语言中最多输入 256 个字符
【发布时间】:2018-08-30 05:40:01
【问题描述】:

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");}

【问题讨论】:

标签: c io fgets getc


【解决方案1】:

有一个数组或 257 或 258 个字符(取决于是否在这 256 个字符中计算换行符)并使用 fgets 读取它,传入大小 257 或 258。然后使用 @987654322 检查字符串的长度@。如果strlen(buf) 恰好是行的最大长度包括换行符,然后检查strlen(buf)-1th 字符 - 如果它是\n 很好,否则你也有长线。


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

【讨论】:

    猜你喜欢
    • 2021-07-10
    • 2012-09-07
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-03
    相关资源
    最近更新 更多