C语言程序设计:5.输入函数
1. 引言
在C语言编程中,输入是与用户交互的一个重要方面。程序需要从外部获取数据,进行处理后再输出结果。C语言提供了多种输入方式,其中最常用的就是 scanf() 函数。通过它,程序能够接收用户的输入,并将输入的数据存储在相应的变量中。
本文将介绍C语言中常用的输入函数,重点讲解 scanf() 函数的使用方法,并通过实例帮助大家理解如何使用输入函数来接收数据。
2. 介绍
2.1 scanf() 函数概述
scanf() 是C语言标准库中用于从标准输入设备(通常是键盘)获取数据的函数。它的基本语法如下:
scanf("格式化字符串", 参数1, 参数2, ...);
其中,格式化字符串 用于定义输入数据的类型和格式,参数 是一个或多个变量的地址,这些变量将存储用户输入的数据。
scanf() 函数通过格式符来识别输入数据的类型,常用的格式符包括 %d、%f、%c、%s 等。
2.2 输入函数的基本流程
- 程序执行到
scanf()时,暂停并等待用户输入。 - 用户在键盘上输入数据,按下回车键。
- 输入的数据会根据格式符匹配,并存储到指定的变量中。
2.3 常见的输入格式符
%d:读取整数(十进制)。%f:读取浮点数(单精度浮点数)。%lf:读取双精度浮点数(double)。%c:读取单个字符。%s:读取字符串(空格之前的内容)。%x:读取十六进制整数。
3. 语法与案例
3.1 输入整数:%d
%d 用于从输入中读取一个整数。
例子:
#include <stdio.h>
int main() {
int a;
printf("请输入一个整数: ");
scanf("%d", &a); // 从用户输入中读取一个整数并存储到a中
printf("你输入的整数是: %d\n", a); // 输出用户输入的整数
return 0;
}
输出:
请输入一个整数: 10
你输入的整数是: 10
3.2 输入浮点数:%f
%f 用于从输入中读取一个浮点数。
例子:
#include <stdio.h>
int main() {
float pi;
printf("请输入一个浮点数: ");
scanf("%f", &pi); // 从用户输入中读取一个浮点数并存储到pi中
printf("你输入的浮点数是: %.2f\n", pi); // 输出用户输入的浮点数,保留两位小数
return 0;
}
输出:
请输入一个浮点数: 3.14159
你输入的浮点数是: 3.14
3.3 输入字符:%c
%c 用于读取单个字符。如果你要输入一个字符(例如,A),可以使用 %c。
例子:
#include <stdio.h>
int main() {
char letter;
printf("请输入一个字符: ");
scanf("%c", &letter); // 从用户输入中读取一个字符并存储到letter中
printf("你输入的字符是: %c\n", letter); // 输出用户输入的字符
return 0;
}
输出:
请输入一个字符: A
你输入的字符是: A
3.4 输入字符串:%s
%s 用于从输入中读取一个字符串。请注意,scanf() 默认会忽略空格字符,因此它会读取直到第一个空格或换行符为止的内容。
例子:
#include <stdio.h>
int main() {
char name[50];
printf("请输入你的名字: ");
scanf("%s", name); // 从用户输入中读取一个字符串并存储到name中
printf("你好,%s!\n", name); // 输出用户输入的字符串
return 0;
}
输出:
请输入你的名字: John
你好,John!
注意:scanf() 在读取字符串时,不能读取包含空格的完整句子。如果用户输入带有空格的名字(如 John Doe),只有 John 会被读取。
3.5 输入多个数据
scanf() 函数还可以同时读取多个数据,并将它们存储到多个变量中。
例子:
#include <stdio.h>
int main() {
int age;
float height;
printf("请输入你的年龄和身高: ");
scanf("%d %f", &age, &height); // 同时读取整数和浮点数
printf("你的年龄是 %d,身高是 %.2f 米。\n", age, height);
return 0;
}
输出:
请输入你的年龄和身高: 25 1.75
你的年龄是 25,身高是 1.75 米。
4. 示例代码
#include <stdio.h>
int main() {
int a;
float b;
char c;
char name[50];
// 输入整数
printf("请输入一个整数: ");
scanf("%d", &a);
// 输入浮点数
printf("请输入一个浮点数: ");
scanf("%f", &b);
// 输入字符
printf("请输入一个字符: ");
scanf(" %c", &c); // 注意在%c前加空格来跳过上一个输入的换行符
// 输入字符串
printf("请输入你的名字: ");
scanf("%s", name);
// 输出输入的结果
printf("你输入的内容如下:\n");
printf("整数: %d\n", a);
printf("浮点数: %.2f\n", b);
printf("字符: %c\n", c);
printf("名字: %s\n", name);
return 0;
}
输出:
请输入一个整数: 10
请输入一个浮点数: 3.14
请输入一个字符: A
请输入你的名字: John
你输入的内容如下:
整数: 10
浮点数: 3.14
字符: A
名字: John
代码解析:
- 在上述例子中,我们使用了
scanf()来输入整数、浮点数、字符和字符串。特别是在读取字符时,在%c前加了一个空格,以跳过可能存在的换行符(\n)。 - 通过
scanf(),用户输入的数据会存储到对应的变量中,然后通过printf()函数输出。
5. 练习题
练习题 1:声明两个整数变量,读取它们的值并输出它们的和。
参考答案:
#include <stdio.h>
int main() {
int x, y;
printf("请输入两个整数: ");
scanf("%d %d", &x, &y); // 同时读取两个整数
printf("两个整数的和是: %d\n", x + y);
return 0;
}
练习题 2:声明一个浮点变量,读取它的值并输出它的平方。
参考答案:
#include <stdio.h>
int main() {
float num;
printf("请输入一个浮点数: ");
scanf("%f", &num); // 读取浮点数
printf("该浮点数的平方是: %.2f\n", num * num);
return 0;
}
练习题 3:声明一个字符数组,读取一个字符串并输出它。
参考答案:
#include <stdio.h>
int main() {
char name[50];
printf("请输入你的名字: ");
scanf("%s", name); // 读取字符串
printf("你的名字是: %s\n", name);
return 0;
}
6. 总结
scanf() 函数是C语言中常用的输入函数,用于从键盘读取数据并将其存储到指定的变量中。掌握常用的输入格式符,如 %d, %f, %c, %s 等,能够帮助我们灵活地处理不同类型的用户输入。通过本文的学习,你应该能够掌握如何在C语言中使用输入函数,使你的程序能够与用户进行交互,收集所需的数据。
评论区