1 概论
C语言提供了跨平台的数据输入输出函数scanf()和printf()函数,它们可以按照指定的格式来解析常见的数据类型,例如整数,浮点数,字符和字符串等等。数据输入的来源可以是文件,控制台以及网络,而输出的终端可以是控制台,文件甚至是网页。
2 数据输出
从第一个C语言程序中,就使用了跨平台的库函数printf实现将一段文字输出到控制台,而实际上,printf()不仅可以将数据按照指定的格式输出到控制台,还可以是网页或者是指定的文件中,printf()函数执行的返回结果是输出字符的个数。
2.1 输出数据到网页
使用printf函数将数据按照指定的格式输出到网页的使用案例,目前我们公司内部的IT系统还有用C语言写的网页程序(cgi)。
#include <stdio.h>
/*
使用printf输出数据到网页
@author Tony 18601767221@163.com
@since 20160530 09:04
*/
void printf_html() {
//将生成的exe程序改成cgi就可以部署在Web服务器例如Apache中的cgi-bin目录中运行了就可以访问了。
//然后通过主机名+端口+文件名.cgi的方式访问
printf("Content-type:text/html \n\n");//声明输出的数据格式是HTML语言
printf("Hello World In HTML");
}
2.2 整数格式化输出
printf()函数的强大之处在于格式化显示输出整数,浮点数,字符以及字符串到文件,网页。同时在控制台我们可以使用这个函数来调试程序或者获取方法的返回值等等。
printf函数的表现形式为:printf(“格式化字符串数据”,可变参数列表)
printf只会按照传递的参数类型解析数据,不会进行数据类型转换,传入的参数类型和个数和输出的类型和个数保持一致,不然程序运行时会出异常
使用printf打印字符串,整数和字符的案例
#include <stdio.h>
/*
使用printf格式化输出数据
@author Tony 18601767221@163.com
@since 20160530 09:14
*/
void printf_sample() {
//最终都是以字符串的方式打印输出
printf("Hello World \n");//输出字符串常量,默认是输出到控制台
//printf显示不同数据类型的数据
printf("我的名字叫%s,我的年龄是%d我的幸运字符是%c\n","Tony",28,'C');
}
printf在打印输出整数时,不仅可以按照三种不同的进制类型(八进制,十进制和十六进制),同时还可以按照有符号和无符号两种方式打印整数。
以及控制输出字符的宽度等等:
#include <stdio.h>
/*
输出指定格式的整数数据
如果要在网页下显示数据,还需要使用printf实现匹配不同的数据格式
@author Tony 18601767221@163.com
@since 20160530 09:20
*/
void printf_format_int() {
const int num = 10;
printf("%d",num);//默认的格式是有多宽 填充多宽
printf("%d\t%ld",num,num);//32位以上的系统%d和%ld是等效的 inth和long是等效的
printf("%10d\n",num);//宽度为10,数据显示默认是右边对齐
printf("%010d\n",num);//宽度为10,如果不足则用0来补充
printf("%-10d\n",num);//宽度为10,默认是按照右边对齐, "-"表示左边对齐
printf("%3d\n",12345); //12345大于实际宽度,3d的格式无效,不足使用空格填充
/*
输出指定格式的整数(有无符号类型以及三种进制类型的)数据
如果要在网页下显示数据,还需要匹配不同的格式
@author Tony 18601767221@163.com
@since 20160530 10:11
*/
void printf_format_int_data_type() {
const int num = 10;
printf("%d\n", num);//有符号十进制
printf("%i\n",num);
printf("%u\n"</