C语言中输入输出格式控制
1、C语言中,非零值为真,真用1表示;零值为假,假用0表示。
2、转义字符参考:
\a |
蜂鸣,响铃 |
\b |
回退:向后退一格 |
\f |
换页 |
\n |
换行 |
\r |
回车,光标到本行行首 |
\t |
水平制表 |
\v |
垂直制表 |
\\ |
反斜杠 |
\' |
单引号 |
\" |
双引号 |
\? |
问号 |
\ddd |
三位八进制 |
\0 |
空字符(NULL),什么都不做 |
\xhh |
二位十六进制 |
说明:
1)\v垂直制表和\f换页符对屏幕没有任何影响,但会影响打印机执行响应操作。
2),\n其实应该叫回车换行。换行只是换一行,不改变光标的横坐标;回车只是回到行首,不改变光标的纵坐标。
注:
文本文件的行结束符,传统上(MS)PC用 CRLF,苹果Mac用CR,unix 用 LF。
CR -- 回车符,c语言'\r'
LF -- 换行符, c语言'\n'
不同计算机上c语言统一规定为:文本文件的行结束符一律变成一个符号LF,也就是换行符'\n'。“回车和换行符转换成一个换行符”,对PC(MS OS)而言,文本文件行结束符CRLF读入后,丢掉CR,留LF。例如fgets() 读入一行,行尾只有LF,没有CR。
3)\t光标向前移动四格或八格,可以在编译器里设置
4)\'在字符里(即单引号里)使用。在字符串里(即双引号里)不需要,只要用 '即可。
3、格式化输入输出
1)格式化输入
printf("格式串" [,表达式1,表达式2,···]);
其中,格式串的字符有两类:
① 以%开头引导的格式符,用于控制表达式的输出格式(有多少个表达式,就有多少个格式符);
② 非格式符:原样显示在屏幕上。
(1)字符串常量的输出
无表达式,格式串中无格式符,如:
printf("We are students.\n");
(2)格式符的语法
syntax: %[flag][width][.precision][h|l|L]type
a)[h|l|L]type
type字段采用一个英文字母来表达数据类型与格式:
d |
按十进制有符号整数形式输出 |
i |
按十进制有符号整数形式输出(同d格式) |
u |
按十进制无符号数形式输出 |
o |
按八进制无符号数形式输出 |
x |
按十六进制无符号数形式输出,输出时使用小写字母 (a, b, c, d, e, f) |
X |
按十六进制无符号数形式输出,输出时使用大写字母(A, B, C, D, E, F) |
f |
按十进制小数形式输出浮点数,输出格式为:[-]ddd.dddddd(默认输出6位小数) |
e |
按十进制指数形式输出浮点数,输出格式为:[-]d.dddde[+/-]ddd,(e后面是指数) |
E |
按十进制指数形式输出浮点数,输出格式为:[-]d.ddddE[+/-]ddd,(E后面是指数)。 用e和E格式输出浮点数时,输出的是科学记数法形式,即小数点前面的整数部分固定为1位整数 |
g |
按十进制形式输出浮点数,自动选择f或e格式中,输出长度小的格式输出;g格式不输出无用的0。 |
G |
按十进制形式输出浮点数,自动选择f或E格式中,输出长度小的格式输出;G格式不输出无用的0。 |
c |
输出单个字符 |
s |
输出字符串 |
p |
输出void指针,输出格式是:WIN32编程模式,只有XXXXXXXX一种格式 |
% |
输出字符%(%用于引导格式控制符,在格式串中输出%号时,必须采用格式%%) |
前缀修饰符:
L: 输出long double类型表达式必加
l: 输出长整型表达式必加
h: 输出短整型表达式必加
b)[width]
width字段用来指定输出的数据项占用的字符列数,也称为输出域宽。缺省该字段,输出宽度按数据的实际位数输出;如果指定的输出宽度小于数据的实际位数,则突破域宽的限制,按实际位数输出;如果指定的域宽大于数据的实际位数,则默认在输出数据的左边输出空格,使输出的字符数等于列宽,也就是说,输出的数据在输出域中自动向右对齐。
width有以下三种情况:
n |
一个非负整型常数,指定输出占用n列宽度。 |
0n |
n为一个整型常数,输出占用n列,如果实际位数不足n列,数据前面补0,填满n列 |
* |
输出域宽来自待输出表达式前面的一个整型表达式。 |
printf("%*d", 8+1, -3);
c)[.precesion]
有以下4种情况:
缺省 |
对于f |e|E格式,表示小数点后输出6位小数,对于g |G格式,表示最多输出6位有效数字 |
.m |
m为非负整型常数,对于浮点格式,指定小数点后面输出m位小数; s格式,表示只输出字符串的前面m个字符 |
.0 |
对于f |e|E格式,表示不输出小数点和小数,按整数形式输出 |
.* |
表示precision来自待输出表达式前面的一个整型表达式 |
示例
#include "iostream"
#include "stdio.h"
using namespace std;
int main()
{
double a=12.578,b=0.2572;
int n=9,m=4;
printf ( "%.2f,%10.2E,%f,%e,%10g" ,a,a,a,a,a);
printf ( "\n" );
printf ( "a=%.0f,a=%*.*f" ,a,n,m,a);
printf ( "\n" );
printf ( "%.2f%%" ,b*100);
printf ( "\n" );
printf ( "%s%6s%6.3s" , "ABCD" , "ABCD" , "ABCD" );
return 1;
}
|
注意,输出中任何一个字符都算作一位。
d)[flag]
缺省 |
输出正数时不输出正号;域宽大于数据实际位数时,域中左边补空格,数据靠右对齐; |
+ |
输出正数时要输出正号; |
- |
域宽大于数据实际位数时,域中右边补空格,数据靠左对齐。 |
# |
用于x |X格式:输出0x(格式x)或0X(格式X)。 |
1、格式化输入函数scanf
用法: scanf("格式串" ,地址1,地址2,···);
1)格式符
syntax: %[*][width][h|l|L]type
(1) [h|l|L]type
d |
以十进制有符号整数形式转换输入数据 |
i |
以十进制有符号整数形式转换输入数据(同d格式) |
u |
以十进制无符号整数形式转换输入数据 |
o |
以八进制有符号整数形式转换输入数据 |
x |X |
以十六进制有符号整数形式转换输入数据(x和X等效) |
e|E|f|g|G |
以十进制浮点数形式转换输入数据,输入数据时,可以输入整型常量、小数形式实型常量或指数形式实型常量。 |
c |
输入一个字符(可输入控制字符) |
s |
输入字符串(遇到第一个空格、TAB或换行符结束转换) |
前缀修饰符:
L: 输入long double类型变量必加
l: 输入长整型变量或者double型变量必加
h: 输入短整型变量必加
(2) [width]
width字段用来指定输入数据的转换宽度,它必须是一个十进制非负整型常量。width表示读入多少个字符就结束本数据项的转换。如果没有指定width,则遇到空格 、TAB键、回车/换行符、非法输入则结束数据项的转换(%c格式除外)。
float a;int b;double c;
scanf("%f%3x%lf",&a,&b,&c);
若输入为:-1.5A8059¿
则a=-1.5, b=0xA80, c=59.0
(3) [*]号
表示数据输入项要按指定格式进行转换,但不保存变量,即该%没有对应的变量。
一般用%*c来吸收字符。
2、几点说明:
编译程序只是检查printf 函数的调用形式,不分析格式控制字符串,如果格式字符与输出项的类型不匹配,不进行类型转换。(输出的数为随机)
格式字符要用小写字母。
格式控制字符串中可以包含转义字符。
格式控制字符串中的普通字符则原样输出。
输出项的参数除了常数、变量外还可以是表达式、函数调用。
C语言中输入输出格式控制相关推荐
- C++STL开发温习与总结(六): 6.C++语言输入/输出流定义之输入/输出格式控制
原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://mp.blog.csdn.net/postedit/79177645 C++STL开发温习 ...
- C++基础知识(二)--左值右值--逻辑表达式求值优化--逗号运算符与表示式--输入输出格式控制...
:一.C++左值右值概念 左值:c++将变量名代表的单元称为左值,而将变量的值称为右值,左值必须是内存中可以访问且可以合法修改的对象,因此只能是变量名,而不能是常量或表达式.即左值可以寻址. 右值:将 ...
- c语言如何输入数字,请问如何在C语言中输入数字获得拼音?
请问如何在C语言中输入数字获得拼音? 答案:1 信息版本:手机版 解决时间 2018-12-10 16:41 已解决 2018-12-10 08:20 请问如何在C语言中输入数字获得拼音? 最佳答案 ...
- c语言判断一个数是否为质数的n次方,C语言中 输入一个数 判断这个数是否为3的N次方 求代码...
C语言中 输入一个数 判断这个数是否为3的N次方 求代码 答案:4 信息版本:手机版 解决时间 2019-10-03 18:55 已解决 2019-10-03 01:54 C语言中 输入一个数 判断 ...
- 怎么在c语言中输入一串字母,C语言中如何输入一个数字n,再输入一串字母,控制字母个数为n(n是变量,1...
C语言中如何输入一个数字n,再输入一串字母,控制字母个数为n(n是变量,1以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ...
- 学C语言中输入输出函数,一篇就够了
语言的输入输出语句有:"getchar(void);"和"putchar(int c);"."scanf("格式控制字符串",地址 ...
- C语言中的输出格式问题、转换方向以及转义字符
输出格式控制 %c 输出一个字符 %% 百分号本身 %s 输出一个字符串 在格式控制符中加上==#==前缀即可输出前缀 %hd .%d.%ld 以十进制.有符号的形式 short .int.long类 ...
- c语言中输入x分段函数值,c语言程序改错:输入x,计算并输出分段函数y的值.0 x0...
C语言 . 输入半径R ,并计算圆的面积S 和周长L .3. 编写一个程序实现把小写字母转换成大写字母.比如 #includeintmain(){floatr,s,l;scanf("%f&q ...
- c语言中输入大数,如何使用C语言实现输入10个数按从大到小的顺序排序输出
本文主要向大家介绍了如何使用C语言实现输入10个数按从大到小的顺序排序输出,通过具体的内容向大家展示,希望对大家学习C语言有所帮助. 用选择排序法编写c语言,实现从键盘上输入10个数,按从大到小的顺序 ...
最新文章
- 重磅|我国科学家成功研制全球神经元规模最大的类脑计算机
- 【剑指offer-Java版】31连续子数组的最大和
- 实例化Layout中的布局文件(xml)
- 平衡二叉树平衡因子怎么计算_平衡二叉树(AVL Tree)旋转机制分析
- 【机器学习】中国大学慕课《机器学习》课后习题(二)(回归)
- python 生成器推导式
- oracle 1天后,Oracle Code One - 第1天 精彩亮点回顾
- IDEA写sql语句的时候没有提示信息的处理办法
- 在powerDesigner中通过SQL生成pdm
- PyTorch入门(四)搭建神经网络实战
- 数字信号处理实验集合
- zedgraph显示最小刻度_关于ZedGraph几个难点
- Ticket Lock的Relaxed Atomics优化
- 计算机更改刷新频率,win10系统更改屏幕刷新频率的设置方案
- 2022-2028年中国电子级醋酸行业市场调查研究及投资策略研究报告
- 游戏本自动掉帧_玩游戏掉帧怎么办?
- 嵌入式设备NFS挂载目录(基于iTop 4412)
- 1425 加工生产调度
- 固高控制卡相关要点分析2
- 数字图像处理习题(三)
热门文章
- linux module原理,NodeJS的模块原理
- 什么是千兆光纤收发器?其产品标准具体有哪些?
- 什么是程控交换机?程控交换机有哪些优势?
- 【渝粤题库】陕西师范大学400005 中国传统文化 作业(专升本)
- 【渝粤题库】国家开放大学2021春1375Matlab语言及其应用题目
- java代码上传exel,excle上传服务器并解析!求excel上传到服务器的java代码
- python 对象锁_也许你对 Python GIL 锁的理解是 错的。
- 【MFC系列-第20天】CDC绘图类成员介绍
- 非cpu0启动linux,SD卡无法启动Linux的问题及解决
- 第二章 Java基本语法(三)