printf函数用法大全 输入输出函数(printf 和 scanf)是C语言中非常重要的两个函数,也是学习C语言必学的两个函数。在C语言程序中,几乎没有一个程序不需要这两个函数,尤其是输出函数(printf),所以这两个函数必须要掌握。如果在程序中要使用 printf 或者 scanf,那么就必须要包含头文件 stdio.h。因为这两个函数就是包含在该头文件中的。 输出函数的功能是将程序运行的结果输出到屏幕上,而输入函数的功能是通过键盘给程序中的变量赋值。可以说输入输出函数是用户和计算机交互的接口。其中 printf 的功能很强大,用法很灵活,比较难掌握;而 scanf 的用法相对比较固定,但也有很多需要注意的地方。 一、printf 的格式 printf 函数的原型为: # include <stdio.h> int printf(const char *format, …); 在讲每一个函数的时候都会先把它的函数原型写出来,这个原型你们现在看不懂不要紧,等到学完C语言之后再来看这个原型就会发现它是很有参考意义的!它对深刻理解函数有着很大的价值。 printf 的格式有四种: 1) printf(“字符串\n”); # include <stdio.h>int main(void){ printf(“Hello World!\n”); // \n表示换行 return 0;} 这句话的意思是将变量 i 以十进制输出。 那么现在有一个问题:i 本身就是十进制,为什么还要将 i 以十进制输出呢? 因为程序中虽然写的是 i=10,但是在内存中并不是将 10 这个十进制数存放进去,而是将 10 的二进制代码存放进去了。计算机只能执行二进制 0、1 代码,而 0、1 代码本身并没有什么实际的含义,它可以表示任何类型的数据。所以输出的时候要强调是以哪种进制形式输出。所以就必须要有“输出控制符”,以告诉操作系统应该怎样解读二进制数据。 如果是就是以十六进制的形式输出,要是就是以八进制的形式输出,大家自己试一下。 3) printf(“输出控制符1 输出控制符2…”, 输出参数1, 输出参数2, …); # include <stdio.h>int main(void){ int i = 10; int j = 3; printf(“%d %d\n”, i, j); return 0;} 输出控制符 1 对应的是输出参数 1,输出控制符 2 对应的是输出参数 2……编译、链接、执行后我们看一下输出结果:10 3 注意一下,为什么 10 和 3 之间有一个空格?因为上面 %d 和 %d之间有空格,printf 中双引号内除了输出控制符和转义字符外,所有其余的普通字符全部都原样输出。比如: #include <stdio.h>int main(void){ int i = 10; int j = 3; printf(“i = %d, j = %d\n”, i, j); return 0;} 这时我们再编译、链接、执行一下:i = 10, j = 3 、、空格和全都原样输出了。此外需要注意的是:“输出控制符”和“输出参数”无论在“顺序上”还是在“个数上”一定要一一对应。 4) printf(“输出控制符 非输出控制符”,输出参数); 这实际上就是上面那个例子。这时候会有一个问题:到底什么是“输出控制符”,什么是“非输出控制符”?很简单,凡是以开头的基本上都是输出控制符。 二、输出控制符 常用的输出控制符主要有以下几个:
%x、%X、%#x、%#X 的区别 一定要掌握 %x(或 %X 或 %#x 或 %#X),因为调试的时候经常要将内存中的二进制代码全部输出,然后用十六进制显示出来。下面写一个程序看看它们四个有什么区别: #include <stdio.h>int main(void){ int i = 47; printf(“%x\n”, i); printf(“%X\n”, i); printf(“%#x\n”, i); printf(“%#X\n”, i); return 0;} 在 VC++ 6.0 中的输出结果:2f2F0x2f0X2F 从输出结果可以看出:如果是小写的,输出的字母就是小写的;如果是大写的,输出的字母就是大写的;如果加一个 ,就以标准的十六进制形式输出。 最好是加一个,否则如果输出的十六进制数正好没有字母的话会误认为是一个十进制数呢!总之,不加容易造成误解。但是如果输出 0x2f 或 0x2F,那么人家一看就知道是十六进制。而且和中,笔者觉得大写的比较好,因为大写是绝对标准的十六进制写法。 三、如何输出 %d、\ 和双引号 printf 中有输出控制符,转义字符前面有反斜杠 ,还有双引号。那么大家有没有想过这样一个问题:怎样将这三个符号通过 printf 输出到屏幕上呢? 要输出只需在前面再加上一个,要输出只需在前面再加上一个,要输出双引号也只需在前面加上一个即可。程序如下: # include <stdio.h>int main(void){ printf(“%%d\n”); printf(“\\\n”); printf(“\”\”\n”); return 0;} 在 VC++ 6.0 中的输出结果是: %d \ ”” 四、总结如下 printf 是C语言中非常重要的一个函数。经过上面的学习我们发现,其实它并不难。只要多编程多练习,很快就能掌握。 其次学完本节之后要知道为什么需要“输出控制符”。因为计算机中所有的数据都是二进制 0、1 代码,所以输出的时候要用“输出控制符”告诉计算机以什么形式将二进制数据显示出来。 输出控制符中,%d、%f、%s、%c 是最常用的,它们分别是输出整数、实数、字符串和字符的控制符。有关 %x、%X、%#x、%#X 四种用法的区别,只需要了解一下即可。 【扩展】想一想,如何调用 printf() 函数输出具有以下格式的数据: 20 345 700 9999 20098 2233 205 1 0 23 如果你想到的办法是: printf(“%d %d %d %d\n”, 20, 345, 700, 22);printf(“%d %d %d %d\n”, 56720, 9999, 20098, 2);printf(“%d %d %d %d\n”, 233, 205, 1, 6666);printf(“%d %d %d %d\n”, 34, 0, 23, ); 这种方法虽然能实现,但过程太自虐了,要敲很多个空格,还要严格控制空格数,否则输出就会错位。实际上,printf() 函数还有一些更高级的玩法,比如自动调整数据的输出格式、控制输出小数的位数等,想学习 printf() 高级玩法的读者请猛击这里。
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/32018.html