[C_2]格式化输入输出
来源:互联网 发布:linux安装finger 编辑:程序博客网 时间:2024/06/14 00:40
3 格式化输入输出
3.1 printf()函数:格式控制 % - 0 m.n l或者h
1 %转换开始位置(占位符)
2 – 左对齐,默认右对齐
3 0 表示空位填0(也可以是其他字符),省略表示不填零
4 m.n m表示输出总共占多少字符,n表示精度,小数点后几位默认n = 6
5 l或者 h l整数 – long 浮点数 – double h整数 – short
6 格式字符
%i或%d
int
%hd
short int
%ld
long int
%u
unsigned int
%f
float
%lf
double
%c
char
%s
string
%p
address 地址
%x
十六进制
%o
八进制
%g
用来输出实数,它会根据数值的大小,自动选择f格式或者e格式选择输出宽度较小的一种),不输出无意义的0
%e
指数形式,科学计数法
%hu
unsigned short格式输出整数
%hx
代表以16进制的输出short类型的整数
#include<stdio.h>int main(){double d = 2145789512;printf("格式化输出演示:\n");printf("09.3lf:%09.3lf,\n-9.3lf:%-9.3lf,\n5.3g:%5.3g,\n5.3e:%5.3e\n",\3.1415926,3.1415926,d,d);}
%d区别,在printf中无差别,scanf中,%d只匹配十进制,%i匹
配八进制,十进制,十
六进制;如何输出%:%%;
3.2 scanf
3.2 scanf#include<stdio.h>int main(){char ch[100];printf("验证scanf的格式控制,请输入字符:\n");scanf("%*[^a-z]%3[a-z]",ch);printf("获取字母:%s\n",ch);}
输入时类型一定要匹配,否则会出错
doubled=0.0
scanf("%f",&d);//前后类型不一样
scanf寻找数据的起始位置时会跳过空白字符(空格,回车,
制表符),scanf()函数返回成功输入的项数。
3.3缓冲区机制
3.3.1输入缓冲区
键盘缓冲区--->回车--->程序输入缓冲区,程序scanf从这取走数据,只取合适的,不合适的在这保存着,并没有消失,只有数据读走时,才会清除。scanf(数据类型)和缓冲区类型不一致时,便无法读走数据,可能导致死循环。
一般输入结构为:
if(scanf("%d",&n)!=1) { scanf(“%*[^\n]”);//清除输入缓冲区剩余字符scanf("%*c"); //从缓冲区中读走一个字符忽略掉 }
说明:*忽略读到的内容[^\n]任何非\n的字符(^非),即将\n之前的所有字符读走
3.3.2输出缓冲区
输出到屏幕的条件:
1\n
2程序结束
3输出缓冲区满(4KB)
4人工刷新(fflush)
int main(){printf(“hello world!”);while(1);}
注意:上面的程序是没有输出的,应添加fflush(stdout)或Ctrl+C终止程序
- [C_2]格式化输入输出
- 格式化输入输出
- 格式化输入输出
- 格式化输入输出
- 格式化输入输出
- 格式化输入输出
- 格式化输入输出
- 格式化输入输出
- c++格式化输入输出
- 转贴:c++格式化输入输出
- C++格式化输入输出
- c++格式化输入输出
- C++格式化输入输出
- 非格式化输入输出函数
- c++格式化输入输出
- C++格式化输入输出
- C中的格式化输入输出
- c++格式化输入输出
- MongoDB数据库的安装、配置、主从同步、备份与恢复
- 【转】英文面试决胜关键
- 程序员word里面写代码
- Linux下Qt应用程序的发布
- 谷歌模拟手机访问web的配置方法
- [C_2]格式化输入输出
- git命令
- TF-IDF笔记
- CF-394B Very Beautiful Number
- (加精!!!)Android实战技术: 用Dimension解决多屏幕适配的问题
- linux下添加动态链接库路径的方法
- Struts2安装配置
- Eclipse快捷键大全
- UVA11988 Broken Keyboard