一,printf
1)作用:产生格式化输出的函数(定义在 stdio.h 中)。
2)用法:int printf(const char *format,[argument]);
format 参数输出的格式,定义格式为:%[flags] [width] [.perc] [F|N|h|l] type
规定数据输出方式,具体如下:
1.type 含义如下:
d 有符号10进制整数
i 有符号10进制整数
o 无符号8进制整数
u 无符号10进制整数
x 无符号的16进制数字,并以小写abcdef表示
X 无符号的16进制数字,并以大写ABCDEF表示
f 浮点数
E/e 用科学表示格式的浮点数
g 使用%f和%e表示中的总的位数表示最短的来表示浮点数 G 同g格式,但表示为指数
c 单个字符
s 字符串
S wchar_t字符(宽字符)类型字符串
% 显示百分号本身
p 显示一个指针,near指针表示为:XXXX
far 指针表示为:XXXX:YYYY
n 相连参量应是一个指针,其中存放已写字符的个数
2.flags 规定输出格式,取值和含义如下:
无 右对齐,左边填充0和空格
- 左对齐,右边填充空格
+ 在数字前增加符号 + 或 -
0 将输出的前面补上0,直到占满指定列宽为止(不可以搭配使用-)
空格 输出值为正时冠以空格,为负时冠以负号
# 当type=c,s,d,i,u时没有影响
type=o,x,X时,分别在数值前增加'0',"0x","0X"
type=e,E,f时,总是使用小数点
type=g,G时,除了数值为0外总是显示小数点
3.width 用于控制显示数值的宽度,取值和含义如下
n(n=1,2,3...) 宽度至少为n位,不够以空格填充
0n(n=1,2,3...) 宽度至少为n位,不够左边以0填充
* 格式列表中,下一个参数还是width
4.prec 用于控制小数点后面的位数,取值和含义如下:
无 按缺省精度显示
0 当type=d,i,o,u,x时,没有影响
type=e,E,f时,不显示小数点
n(n=1,2,3...) 当type=e,E,f时表示的最大小数位数
type=其他,表示显示的最大宽度
.* 格式列表中,下一个参数还是width
5.F|N|h|l 表示指针是否是远指针或整数是否是长整数
F 远指针
n 近指针
h 短整数或单精度浮点数
l 长整数或双精度浮点数
3)函数返回值:
printf函数类型为整型,其返回值是整型值。
其值实际为printf控制输出的字符数。
printf()函数实际上是将所有参数按字符输出,根据该函数的参数1(const char *format),我们不难理解。
例如:
int a,b;
a=printf("gelin\n"); //a的值为6,
b=printf("the value of printf is:%d",a); //b的值为24
4)特别注意
printf 从右向左执行!!!
5)示例
1> printf("%10.5f\n",5.2); // 右对齐位宽 10个字符,小数点后5位
2>printf("%f",3); // 整型3不会被隐式类型转换为浮点型,而是被直接按内存内容当作浮点型
内部使用等价于
int i = 3;
printf("%f", *(float*)&i)
对于%f默认为double浮点型(64位,默认的显示精度是小数点后6位)则3实际的值接近于0
根据IEEE 754标准对64位浮点数采用的表示为:
数符(1位)| 阶码 (11位) | 尾数 (52位)
内存中整数3就是
00000000 00000000 00000000 00000011 +32位随机值
所以输出值为:0.000000
3>printf("%d",5.01); // 输出一个大数
按int类型寻址4个字节,会产生大整数
分享到:
相关推荐
CHM格式,直接下载即可用,比较小不错的参考,自己整理...1、C指针精华文章 2、键盘扫描码以及整数型对照表 3、C/C++语言编程规范 4、谭版C教程 5、ASCII码表及其它常用表对照 6、C最常用函数释疑,含scanf()、printf()
答:函数和变量被C++编译后在符号库中的名字与C语言的不同,被extern "C"修饰的变 量和函数是按照C语言方式编译和连接的。由于编译后的名字不同,C++程序不能直接调 用C 函数。C++提供了一个C 连接交换指定符号...
本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。 许多面试题看似简单,却需要深厚的基本功才能给出...
printf(“%p\n”,&a);//输出:002AF744 printf(“%p\n”,ap);//输出:002AF744 printf(“%d\n”,*ap);//输出:100 printf(“%p\n”,&ap);//输出:002AF738 printf(“%p\n”,&*ap);//输出:002AF744 scanf(“%d”); ...
#include char *c[]={ENTER,NEW,POINT,FIRST}; char **cp[]={c+3,c+2,c+1,c}; char ***cpp=cp; void main() { ...**考点:这道题目主要在于对 “一维指针数组c” 与 “二维指针数组cp” 及 “三维
用C/C++语言写一函数完成该算法,给出复杂度 <br>6.对序列1、1、2、3、5、8、13。。。。 是Fab..数列 2、3、5、13...是Fab..质数数列,因为他们与自己前面的Fab...数列都互质 给出k,返回第k小的...
原因在于foo( )和"hello world"串都会产生一个临时对象,而在C++中,这些临时对象都是const类型的。因此上面的表达式就是试图将一个const类型的对象转换为非const类型,这是非法的。 引用型参数应该在能被...
验证指针在函数中的用法 运行平台:Borland C++ Builder 6.0 调试时间:1:13AM 05/27/2005 调试目的:为验证指针在函数中的用法 源程序为适应C++ Builder 6.0,故作了稍微修改。
pdf版的,很清晰,对应届生找工作很有帮助的!
C/C++支持可变参数个数的函数定义,这一点与C/C++语言函数参数调用时入栈顺序有关,首先引用其他网友的一段文字,来描述函数调用,及参数入栈: ———— 引用开始 ———— C支持可变参数的函数,这里的意思是C支持...
讨论下C/C++中的回调函数。 在理解“回调函数”之前,首先讨论下函数指针的概念。 函数指针 (1)概念:指针是一个变量,是用来指向内存地址的。一个程序运行时,所有和运行相关的物件都是需要加载到内存中...
功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)返回指向第一次出现needle位置的指针,如果没有找到则返回NULL。 (2)函数原型:extern float pow(float x, float y); 用法:#...
C/C++ 中堆和栈及静态数据区详解 五大内存分区 在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。下面分别来介绍: 栈,就是那些由编译器在需要的时候分配,在不需要的...
1 C语言概述 2<br/>1.1 C语言的发展过程 2<br/>1.2 当代最优秀的程序设计语言 2<br/>1.3 C语言版本 2<br/>1.4 C语言的特点 3<br/>1.5 面向对象的程序设计语言 3<br/>1.6 C和C++ 3<br/>1.7 简单的C程序介绍 4...
printf("文件打开错误!"); } else { //移动指针指向文件开始 fgetc(fp); while(ch!=EOF) /*从文件读一字符,显示到屏幕*/ { //显示字符 putchar(ch); //继续移动指针读取字符 直到文件结尾 ...
1.6 C和C++ 1.7 简单的C程序介绍 1.8 输入和输出函数 1.9 C源程序的结构特点 1.10 书写程序时应遵循的规则 1.11 C语言的字符集 1.12 C语言词汇 1.13 Turbo C 2.0 集成开发环境的使用 1.13.1 Turbo C 2.0 ...
void setnull(seqstack *s) /*置空栈-由于c语言的数组下标是从0开始的,所以置 空栈操作时将栈顶指针放在下标为0之前,即-1处。*/ {s->top=-1;} int empty(seqstack *s) /*判断当前栈是否为空栈*/ { if(s->...
1.6 C和C++ 1.7 简单的C程序介绍 1.8 输入和输出函数 1.9 C源程序的结构特点 1.10 书写程序时应遵循的规则 1.11 C语言的字符集 1.12 C语言词汇 1.13 Turbo C 2.0 集成开发环境的使用 1.13.1 Turbo C 2.0 ...
void mystrcpy(const char *from, char *to) { for ( ; *from!='\0'; from++, to++) *to = *from; *to = '\0'; } ...printf("a = %s, b=%s\n",a,b); mystrcpy(a,b); printf("a = %s, b=%s\n",a,b);
在C语言中,输入输出是使用语句scanf()和printf()来实现的,而C++中是使用类来实现的。 #include iostream.h main() //C++中main()函数默认为int型,而C语言中默认为void型。 { int a; cout; cin>>a; /*输入...