嵌入式系列文章之第一章C语言の第三节输入输出专题-创新互联

嵌入式(Linux)系列文章目录

第一章 C语言の第一节 必备Linux命令和C语言基础
第一章 C语言の第二节 数据类型、常量、变量及运算符
第一章 C语言の第三节 输入输出专题

创新互联成立于2013年,我们提供高端网站建设公司网站制作公司成都网站设计、网站定制、网络营销推广小程序设计、微信公众号开发、seo优化排名服务,提供专业营销思路、内容策划、视觉设计、程序开发来完成项目落地,为效果图设计企业提供源源不断的流量和订单咨询。

文章目录
  • 嵌入式(Linux)系列文章目录
  • 前言
  • 第一章 C语言
    • 第三节 输入输出专题
      • 1.字符输出函数和格式输出函数
        • 1.1 字符输出函数
        • 1.2 格式输出函数
        • 1.3 printf支持的格式字符
      • 2.字符输入函数和格式输入函数
        • 2.1 字符输入函数
        • 2.2 格式输入函数
        • 2.3 scanf支持的格式字符
      • 3.输入函数的垃圾处理及字符串的输入输出
        • 3.1 如何处理输入函数留下的垃圾
        • 3.2 字符串输入函数
        • 3.3 字符串输出函数
  • 总结


前言

本文章采用VMware Workstation Pro进行嵌入式(Linux)系列学习

从零开始,重新学习(嵌入式相关内容)并记录知识点(涉及基础c语言(数据结构)、linux编程、shell脚本、文件io、网络编程)等),同时也是为了方便自身回顾,如有不对的地方请大佬多多指教,谢谢!->欢迎评论区留言


第一章 C语言 第三节 输入输出专题 1.字符输出函数和格式输出函数

数据输出(C语言无I/O语句,I/O操作由函数实现)

#include
1.1 字符输出函数

格式:putchar(c)
参数:c为字符常量、变量或表达式
功能:把字符c输出到显示器上
返回值:正常,为显示的代码值

1.2 格式输出函数

格式:printf(“格式控制串”,输出表)
功能:按指定格式向显示器输出数据
输出表:要输出的数据
格式控制串:包含两种信息
格式说明:%[修饰符]格式字符,用于指定输出格式
普通字符:原样输出

1.3 printf支持的格式字符
格式符作用
i,d十进制整数
x,X十六进制无符号整数
o八进制无符号整数
u无符号十进制整数
c单一字符
s字符串
e,E指数形式浮点小数
f小数形式浮点小数
ge和f中较短一种
%%百分号本身

附加格式说明符

修饰符功能
m输出数据域宽,数据长度
.n对实数,指定小数点后位数(四舍五入);对字符串,指定实际输出位数
输出数据在域内左对齐(缺省右对齐)
指定在有符号数的正数前显示正号(+)
0输出数值时指定左面不使用的空位置自动填0
井号键(#)在八进制和十六进制数前显示前导0,0x
l在d,o,x,u前,指定输出精度为long型;在e,f,g前,指定输出精度为double型
2.字符输入函数和格式输入函数 2.1 字符输入函数

格式:getchar()
功能:从键盘读一字符
返回值:正常,返回读取的代码值;出错或结束键盘输入,返回-1(ctrl+d)

2.2 格式输入函数

格式:scanf(“格式控制串”,地址表)
功能:按指定格式从键盘读入数据,存入地址表指定存储单元中,并按回车键结束
返回值:正常,返回输入数据个数
地址表:变量的地址,常用取地址运算符&

2.3 scanf支持的格式字符
格式符作用
i,d十进制整数
x,X十六进制无符号整数
o八进制无符号整数
u无符号十进制整数
c单一字符
s字符串
e指数形式浮点小数
f小数形式浮点小数

scanf函数支持的格式说明符可以带以下修饰符

修饰符功能
h用于d,o,x前,指定输入为short型整数
l用于d,o,x前,指定输入为long型整数;用于e,f前,指定输入为double型实数
m指定输入数据宽度,遇空格或不可转换字符结束
星号(*)抑制符,指定输入项读入后不赋给变量

注:
用“%c”格式符时,空格和转义字符作为有效字符输入
输入数据时,遇以下情况认为该数据结束:①遇空格、TAB或回车;②遇非法输入;③遇宽度结束

3.输入函数的垃圾处理及字符串的输入输出 3.1 如何处理输入函数留下的垃圾

方法1:用getchar()清除
代码验证

#includeint main(int argc, char *argv[])
{int x;
	char ch;
	
	scanf("%d", &x);
	getchar();
	ch = getchar();
	printf("x = %d, ch = %d\n", x, ch);

	return 0;
}

结果

5
x = 5, ch = 10

方法2:用格式串中空格或“%*c”来“吃掉”
代码验证

#includeint main(int argc, char *argv[])
{int x;
	char ch;
	
	scanf("%d", &x);
	scanf(" %c", &ch); // 或scanf("%*c%c", &ch);
	printf("x = %d, ch = %d\n", x, ch);

	return 0;
}

结果

5
 a
x = 5, ch = 97
3.2 字符串输入函数

格式:char* gets(char *s)
功能:从键盘输入一以回车结束的字符串放入
说明1:输入串长度应小于字符数组维数
说明2:与scanf函数不同,gets函数并不以空格作为字符串输入结束的标志

不安全的函数(容易导致栈错误):stack smashing detected

3.3 字符串输出函数

格式:int puts(const char *s)
功能:向显示器输出字符串(输出完,换行)
说明:字符数组必须以‘\0’结束

gcc a.c -lm(编译时的链接选项)

总结

本章为嵌入式学习系列文章 第一章:C语言の第三节 输入输出专题

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享文章:嵌入式系列文章之第一章C语言の第三节输入输出专题-创新互联
文章转载:http://myzitong.com/article/ejjip.html