小白初始嵌入式day4
C语言输入输出学习笔记


一、C语言语句分类
在C语言中,语句是完成特定功能的代码,通常以分号(;)结尾。语句可以分为以下几类:
1. 控制语句
用于控制程序的流程,例如:
if (condition) {
// 条件成立时执行的代码
} else {
// 条件不成立时执行的代码
}
2. 表达式语句
用于执行计算或赋值操作,例如:
a = 1 + 2;
3. 函数调用语句
用于调用函数,例如:
printf("hello\n");
4. 空语句
空语句只包含一个分号,通常用于满足语法要求,例如:
;
5. 复合语句
将多条语句组合在一起,逻辑上视为一条语句,例如:
{
a = 1 + 2;
b = 3;
}
二、输入输出操作
1. 输入输出的基本概念
输入输出操作是程序与用户交互的重要方式。输入通常来自键盘,输出通常显示在屏幕上。C语言本身并不直接提供输入输出功能,而是通过标准输入输出库(stdio)提供的函数来实现。
2. 标准输入输出库(stdio)
stdio 是C语言的标准输入输出库,提供了多种输入输出函数。使用时需要包含头文件:
#include <stdio.h>
3. 单个字符的输入输出
getchar 和 putchar 是处理单个字符输入输出的函数。
(1)getchar
• 功能:从键盘读取一个字符。
• 原型:
int getchar(void);
• 返回值:返回输入字符的ASCII码值。
(2)putchar
• 功能:将一个字符输出到屏幕。
• 原型:
int putchar(int c);
• 返回值:返回输出字符的ASCII码值。
示例代码:
#include <stdio.h>
int main(void)
{
int ret = 0;
ret = putchar('A'); // 输出字符 'A'
printf("ret = %d\n", ret); // 输出返回值
return 0;
}
4. 格式化输入输出
scanf 和 printf 是处理格式化输入输出的函数。
(1)printf
• 功能:格式化输出数据。
• 原型:
int printf(const char *format, ...);
• 参数:
• format:格式控制字符串,用于指定输出的格式。
• ...:可变参数,表示要输出的数据。
• 占位符:
• %d:有符号十进制整数。
• %u:无符号十进制整数。
• %x:无符号十六进制整数。
• %f:十进制浮点数。
• %c:字符。
• %s:字符串。
示例代码:
#include <stdio.h>
int main(void)
{
int a = 10;
float b = 12.34;
char c = 'a';
printf("a = %d\n", a);
printf("b = %f\n", b);
printf("c = %c\n", c);
return 0;
}
(2)scanf
• 功能:格式化输入数据。
• 原型:
int scanf(const char *format, ...);
• 参数:
• format:格式控制字符串,用于指定输入的格式。
• ...:可变参数,表示变量的地址。
• 占位符:
• %d:有符号十进制整数。
• %u:无符号十进制整数。
• %x:无符号十六进制整数。
• %f:十进制浮点数。
• %c:字符。
• %s:字符串。
示例代码:
#include <stdio.h>
int main(void)
{
int a;
float b;
char c;
printf("请输入一个整数:");
scanf("%d", &a);
printf("请输入一个浮点数:");
scanf("%f", &b);
printf("请输入一个字符:");
scanf(" %c", &c); // 注意前面的空格,用于跳过空白字符
printf("输入的整数是:%d\n", a);
printf("输入的浮点数是:%f\n", b);
printf("输入的字符是:%c\n", c);
return 0;
}
5. 格式化输出的辅助控制符
printf 支持多种辅助控制符,用于控制输出的格式。
(1)宽度控制
• m:指定输出的最小宽度。如果实际数据宽度小于指定宽度,则默认右对齐,左边补空格。
• -m:指定左对齐。
(2)小数点控制
• .n:指定小数部分的精度(浮点数)或字符串的最大长度。
(3)类型修饰符
• l:用于长整型(long int)或双精度浮点型(double)。
• ll:用于长长整型(long long int)。
• h:用于短整型(short int)或字符型(char)。
(4)补0
• 0m:在宽度控制时,用0填充。
示例代码:
#include <stdio.h>
int main(void)
{
int a = 123;
float b = 12.345678;
printf("%5d\n", a); // 输出宽度为5,右对齐
printf("%-5d\n", a); // 输出宽度为5,左对齐
printf("%05d\n", a); // 输出宽度为5,左补0
printf("%.2f\n", b); // 小数点后保留2位
printf("%5.2f\n", b); // 总宽度为5,小数点后保留2位
return 0;
}
6. 输入输出的注意事项
• 输入多个数据时,数据之间可以用空白符(空格、Tab、回车)分隔。
• 使用 scanf 时,需要提供变量的地址。
• 输入输出的占位符和变量类型必须匹配,否则可能导致段错误。
• 输入字符时,空白符也会被识别。
• 使用 scanf 输入字符串时,可以使用 %s,但需要注意输入的字符串不能超过变量的存储空间。
7. 练习
编写程序,从终端输入数据给变量,并打印变量的值。
示例代码:
#include <stdio.h>
int main(void)
{
int a, b;
float x, y;
char c1, c2;
printf("请输入两个整数:");
scanf("%d %d", &a, &b);
printf("请输入两个浮点数:");
scanf("%f %f", &x, &y);
printf("请输入两个字符:");
scanf(" %c %c", &c1, &c2); // 注意前面的空格,用于跳过空白字符
printf("a = %d, b = %d\n", a, b);
printf("x = %.2f, y = %.2f\n", x, y);
printf("c1 = '%c', c2 = '%c'\n", c1, c2);
return 0;
}
8. 总结
C语言的输入输出操作是通过标准输入输出库(stdio)提供的函数实现的。printf 和 scanf 是最常用的格式化输入输出函数,支持多种格式控制符和辅助控制符。在使用时需要注意格式控制符与变量类型的匹配,以及输入输出的对齐和精度控制。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)