📜  从终端输入值到 - C 编程语言(1)

📅  最后修改于: 2023-12-03 15:22:01.338000             🧑  作者: Mango

从终端输入值到 C 编程语言

在 C 编程语言中,需要从终端读取输入时,可以使用 scanf() 函数。 scanf() 函数是 C 标准库中的一部分,它允许从标准输入流(通常是键盘)读取输入,然后将值保存到指定的变量中。

以下是一个简单的程序示例,展示如何使用 scanf() 函数从终端读取输入值:

#include <stdio.h>

int main() {
    int number;
    printf("请输入一个整数: ");
    scanf("%d", &number);
    printf("您输入的整数是 %d\n", number);
    return 0;
}

在这个示例中,我们使用了 scanf() 函数来读取用户输入的整数,并将其存储在一个整数变量中。输出结果将显示用户输入的整数。

需要注意的是,在使用 scanf() 函数时需要注意输入格式与数据类型的一致性,否则可能会导致程序崩溃或出现不可预期的行为。例如,如果尝试将字符串存储在整数变量中,就可能导致程序崩溃。此外,如果用户在输入时未按照要求输入数据,也可能导致程序出现错误。

因此,我们通常需要编写容错代码来应对这些情况。以下是一个修改后的示例程序,使用了 fgets() 函数读取用户输入,并使用 strtol() 函数将输入字符串转换为整数数据类型:

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

int main() {
    char input[16];
    long number;
    char *endptr;

    printf("请输入一个整数: ");
    fgets(input, sizeof(input), stdin);
    input[strcspn(input, "\n")] = '\0'; // 移除输入字符串的换行符

    number = strtol(input, &endptr, 10);
    if (endptr == input || *endptr != '\0') {
        printf("输入不正确!\n");
        return EXIT_FAILURE;
    }

    printf("您输入的整数是 %ld\n", number);
    return EXIT_SUCCESS;
}

在这个示例中,我们首先使用 fgets() 函数从标准输入流中读取用户输入,并将其保存到一个字符数组中。然后,我们使用 strtol() 函数将输入字符串转换为长整数类型,并检查输入是否有效。如果输入无效,则输出错误消息并退出程序。如果输入有效,则输出用户输入的整数。

需要注意的是,我们在 fgets() 函数调用后使用了 strcspn() 函数来移除输入字符串的换行符。如果不这样做,则输入字符串中将包含一个换行符,这可能会导致 strtol() 函数无法正常工作。

以上就是从终端输入值到 C 编程语言的介绍。使用 scanf() 函数或 fgets() / strtol() 函数可以很方便地从终端读取用户输入,并将其转换为适当的数据类型。要确保输入格式与数据类型的一致性,并编写容错代码来处理不正确的输入。