C语言中 scanf 和 printf 的小要点
1 scanf_s需指定%c 个数
h short
l long关键字
* 不赋给任何值
W 指定读入宽度
转换字符
a 读浮点值(c99)
A 读浮点值(c99)
c 读单字符
d 读十进制数
i 读十进制\八进制\十六进制整数
e 读浮点数
E 读浮点数
f 读浮点数
F 读浮点数(c99)
g 读浮点数
G 读浮点数
o 读八进制数
s 读字符串
x 读十六进制数
X 读十六进制数
p 读指针值
n 至此已读入值的等价字符数
u 无符号十进制整数
[] 扫描字符集合
% 读%符号
2 printf
Format %[flags][width][.prec][F][N][h][i]type
转义字符
type
d\i int
o unsigned int(o)
u unsigned int(d)
x\X unsigned int(h)
f float\double 缺省精度为小数点后六位
e\E double(科学计数法+e\E) 只输出7位有效数字
g\G double(F\E最短的,四位小数) 只输出六位有效数字
c char 当接受值为字符串时打印第一个字符,可以把输入的数字按ASCII转换为对应字符
s\S char*\wchar_t*
p void*(h)
% %
flags
(空格) 右对齐,输出值为负时加上-
- 左对齐
+ 在数字前增加符号+或-(随数字本身)
0 将输出的前面补上0
# o "0" x "0x" X "0X"
e E f g G 一定使用小数点
g G 尾部0保留
width
用于控制显示数值的宽度
转换结果宽于字段宽度,将拓展字段以包含
小的精度可能发生截断
prec 0 缺省精度
d\o\x\X\i\u 最少数字显示位数
e\f\E 转换的技术字符后的最少数字显示位数
g\G 转换的最大有效数字位数
s 转换中的字符串最大打印字节数目
F\N\h\l
F 远指针
N 近指针
h 短整型
l 长整型
printf 返回值 实际控制输出的字符数
注:远(far)指针
远指针不是让编译程序把程序数据段地址作为指针的段地址部分,而是把指针的段地址与指针的偏移量直接存放在指针内。因此,远指针是由4 个字节构成。它可以指向内存中的任一目标,可以用于任一编译模式,尽管仅在紧凑、大和巨模式下远指针才是缺省的数据指针。因为远指针的段地址在指针内,熟悉80X86 汇编语言的人都知道,这意味着每次使用远指针时都需要重新装载段寄存器,这显然会降低速度。
2远指针与近指针区别
近指针是16位的指针,它只表示段内的偏移地址,因而只能对64k字节数据段内地址进行存取。
如 char near *p;
p=(char near *)0xffff;
远指针是32位指针,它表示段地址:偏移地址,如定义远程指针p指向B500段的2号地址,即B500:0002,则可写作:
char far *p;
p=(char far *)0xB5000002;
因此,远指针可以进行跨段寻址,可以访问整个内存的地址。
注:float精度 6-7位指数范围-127-+128
double 精度 15-16位指数范围-1023-+1024
注:转义字符
通用转义字符 \ooo(8进制) \xddd(16进制)(需区分终端输出和文本输出)
不可打印字符\特殊字符 都用转义字符书写
不可打印字符
换行符 \n 终端输出\n即可,文本文件中输出Lunix"\n" Windows "\n\r" Mac "\r"
水平制表符 \t 占8列,用于将光标跳到[Tab]键的下一个输出区
纵向制表符 \v 后面的字符从下一行开始输出,且开始的列数为'v'前一个字符所在列后面一列
退格符 \b
回车符 \r 光标回到本行行首,可能覆盖之前的内容
进纸符 \f 清空屏幕再次输出
退格符 \b
报警符 \a
特殊字符
疑问号 \?
单引号 \'
双引号 \"
反斜杠 \\
C语言中 scanf 和 printf 的小要点的更多相关文章
- C语言中scanf()的用法!
好文章转自:http://blog.tianya.cn/blogger/post_show.asp?BlogID=287129&PostID=3668453 scanf详解 scanf 原型: ...
- C语言中scanf/fscanf 的%[]和%n说明符的使用方法
标准输入输出函数%[]和%n说明符的使用方法 scanf fscanf,均从第一个非空格的可显示字符开始读起! 标准输入输出函数scanf具有相对较多的转换说明符,它常常作为入 ...
- c语言中scanf()、printf()函数
函数调用scanf(“%d”, &weight) 包含两个参数:“%d” 和&weight.C用逗号来隔开函数调用中的多个参数: 但是printf()和scanf()函数比较特殊,其 ...
- gcc c语言中scanf输入格式不正确,清空缓冲区问题
我的博客:www.while0.com 折磨了一下午,只因为fflush(stdin)再gcc里和vc里表现不一致.gcc里不能够清空缓冲区.直接上例子: #include <stdio.h&g ...
- C语言中puts()和printf()区别
puts的功能更加单一,只能输出字符串:printf的功能更加广,可以格式化数据,输出多种类型的数据. puts()函数用来向标准输出设备(屏幕)写字符串并换行. 调用方式为puts(string): ...
- C语言中scanf函数的实现
接上一篇C语言中可变参数函数实现原理,从理论上详细介绍了C语言中可变参数函数的实现,这一篇从minix内核源码中的scanf函数入手,学习C语言经典可变参数函数的实现过程 在scanf.c文件中,可以 ...
- (转)C语言中scanf函数与空格回车
来源:http://blog.csdn.net/xia7139/article/details/14522493
- c语言中的scanf在java中应该怎么表达,Scanner类。
1 java是面向对象的语言 它没有像C语言中的scanf()函数,但是它的类库中有含有scanf功能的函数 2 java.util包下有Scanner类 Scanner类的功能与scanf类似 3 ...
- 关于C语言中printf函数“输出歧视”的问题
目录 关于C语言中printf函数"输出歧视"的问题 问题描述 探索问题原因 另一种研究方法 问题结论 关于C语言中printf函数"输出歧视"的问题 问题描述 ...
随机推荐
- LCD控制器与驱动器
这回我再讲讲从 MCU 到 LCD 之间是怎样一个控制流程,即我们的位图数据是怎样显示到 LCD 上的.前面我们了解到 LCD 显示是用动态扫描的方式来实现的,每次显示一整行,在一帧里每行一次扫描一遍 ...
- caffe中的Blob块
首先说明:Blob定义了一个类模板. 让我们看一下Blob的头文件里有什么哈: 定义了一个全局变量: const ; 看看它的构造函数: Blob() : data_(), diff_(), coun ...
- 算法_栈与队列的Java链表实现
链表是一个递归的数据结构,它或者为null,或者是指向一个结点的引用,该结点含有一个泛型的元素和指向另一个链表的引用.可以用一个内部类来定义节点的抽象数据类型: private class Node ...
- 【转载】C++异常机制的学习
参考了这篇文章:http://blog.chinaunix.net/uid-24517549-id-4079174.html 关于线程 进程和线程的概念相信各位看官早已耳熟能详.在这里,我只想带大家回 ...
- 使用bufferevent进行libevent服务端和客户端的开发
参考了网上的一些例子,实验了基于bufferevent的开发. 首先是服务端: #include <netinet/in.h> #include <sys/socket.h> ...
- hdu 5317 RGCDQ(前缀和)
题目链接:hdu 5317 这题看数据量就知道需要先预处理,然后对每个询问都需要在 O(logn) 以下的复杂度求出,由数学规律可以推出 1 <= F(x) <= 7,所以对每组(L, R ...
- 【服务器环境搭建-Centos】常用系统命令篇
uname -a 查看系统信息
- Spring多数据源的配置和使用
1. 配置多个数据源 最近开发一个数据同步的小功能,需要从A主机的Oracle数据库中把数据同步到B主机的Oracle库中.当然能够用dmp脚本或者SQL脚本是最好,但是对于两边异构的表结构来说,直接 ...
- myeclipse 配置svn资源库
只需在dropins文件夹里放入features,plugins两个文件夹:访问这个路径下载即可:http://pan.baidu.com/s/1dDnJKXF
- php防止sql注入
[一.在服务器端配置] 安全,PHP代码编写是一方面,PHP的配置更是非常关键. 我们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最 ...