当前位置:首页 C++ > 正文

C/C++输入:连续输入,以逗号隔开

作者:野牛程序员:2023-07-17 07:09:17 C++阅读 4134

如果想在C或C++中进行连续输入,并使用逗号作为分隔符,可以使用适当的输入和字符串处理函数来实现它。以下是一个示例程序,展示了如何连续输入一串以逗号分隔的数字:

#include <stdio.h>
#include <string.h>

#define MAX_INPUT_LENGTH 100

int main() {
    char input[MAX_INPUT_LENGTH];
    int numbers[MAX_INPUT_LENGTH];
    int count = 0;

    printf("请输入一串以逗号分隔的数字:\\n");
    fgets(input, sizeof(input), stdin);

    char* token = strtok(input, ",");
    while (token != NULL) {
        sscanf(token, "%d", &numbers[count]);
        count++;
        token = strtok(NULL, ",");
    }

    printf("输入的数字为:");
    for (int i = 0; i < count; i++) {
        printf("%d ", numbers[i]);
    }

    return 0;
}

在这个程序中,首先声明了一个字符数组 input 来存储输入的字符串,以及一个整数数组 numbers 来存储解析后的数字。MAX_INPUT_LENGTH 定义了输入的最大长度,您可以根据需要进行调整。

然后,使用 fgets 函数从标准输入读取输入的字符串,并将其存储在 input 中。

接下来,使用 strtok 函数将输入的字符串分割成逗号分隔的片段。循环遍历这些片段,并使用 sscanf 函数将它们转换为整数,并将其存储在 numbers 数组中。

最后,遍历 numbers 数组,并打印出输入的数字。

请注意,此示例假定输入的数字不超过 MAX_INPUT_LENGTH 个,并且输入的格式正确(即没有额外的空格或非数字字符)。可以根据需要进行适当的错误处理和边界检查。

当然,还有其他方法可以实现连续输入并以逗号分隔。除了使用字符串处理函数外,还可以考虑使用字符输入流和循环读取的方法。下面是一个使用循环读取的示例程序:

#include <stdio.h>

#define MAX_INPUT_LENGTH 100
#define MAX_NUMBERS 10

int main() {
    int numbers[MAX_NUMBERS];
    int count = 0;
    char input[MAX_INPUT_LENGTH];
    int i = 0;

    printf("请输入一串以逗号分隔的数字:\\n");
    fgets(input, sizeof(input), stdin);

    while (input[i] != '\\0') {
        if (input[i] == ',') {
            i++;
            continue;
        }

        sscanf(&input[i], "%d", &numbers[count]);
        count++;

        while (input[i] != ',' && input[i] != '\\0') {
            i++;
        }
    }

    printf("输入的数字为:");
    for (int i = 0; i < count; i++) {
        printf("%d ", numbers[i]);
    }

    return 0;
}

在这个示例程序中,使用了一个字符数组 input 来存储输入的字符串,一个整数数组 numbers 来存储解析后的数字。MAX_INPUT_LENGTH 定义了输入的最大长度,MAX_NUMBERS 定义了数字的最大数量,可以根据需要进行调整。

首先使用 fgets 函数从标准输入读取输入的字符串,并将其存储在 input 中。

然后,使用一个循环遍历 input 字符数组。如果遇到逗号字符,跳过它并继续下一个字符。如果遇到非逗号字符,使用 sscanf 函数将其解析为整数,并将其存储在 numbers 数组中。然后,继续循环,直到遇到下一个逗号或字符串结束。

最后,遍历 numbers 数组,并打印出输入的数字。

这种方法相对于字符串处理函数更直接,但需要更多的手动处理和控制循环。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击