📅  最后修改于: 2023-12-03 15:22:01.338000             🧑  作者: Mango
在 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()
函数可以很方便地从终端读取用户输入,并将其转换为适当的数据类型。要确保输入格式与数据类型的一致性,并编写容错代码来处理不正确的输入。