printf
函数作用:格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。
原型
extern int printf(const char *format,...);
用法

//以下程序用于获得输入值i,j并将其输出(i,j之间以逗号隔开)#include<stdio.h>
int main()
{int i, j;scanf("%d, %d", &i, &j);printf("i=%d;j=%d", i, j);return 0;
}

规定输出数据的格式,具体如下:
type
type的字符用于规定输出数据的类型,含义如下:
字符 对应数据类型 含义
d / i int 接受整数值并将它表示为有符号的十进制整数,i是老式写法
o unsigned int 无符号8进制整数(不输出前缀0)
u unsigned int 无符号10进制整数
x / X unsigned int 无符号16进制整数,x对应的是abcdef,X对应的是ABCDEF(不输出前缀0x)
f(lf) float(double) 单精度浮点数用f,双精度浮点数用lf(尤其scanf不能混用)
e / E double 科学计数法表示的数,此处”e”的大小写代表在输出时用的“e”的大小写
g / G double 有效位数,如:%8g表示单精度浮点数保留8位有效数字。双精度用lg
c char 字符型。可以把输入的数字按照ASCII码相应转换为对应的字符
s / S char * / wchar_t * 字符串。输出字符串中的字符直至字符串中的空字符(字符串以’\0‘结尾,这个’\0’即空字符)
p void * 以16进制形式输出指针
n int * 到此字符之前为止,一共输出的字符个数,不输出文本
% 无输入 不进行转换,输出字符‘%’(百分号)本身

fprintf
函数作用:格式化输出到一个流/文件中;
函数原型:int fprintf( FILE *stream, const char *format, [ argument ]...),
fprintf()函数根据指定的格式(format)向输出流(stream)写入数据(argument)。
参数说明:FILE*stream:文件指针
const char* format:输出格式
[argument]:附加参数列表

规定符
%d, %i 十进制有符号整数
%u 十进制无符号整数
%f 浮点数
%s 字符串
%c 单个字符
%p指针的值
%e, %E 指数形式的浮点数
%x无符号以小写十六进制表示的整数
%X 无符号以大写十六进制表示的整数
%o 无符号以八进制表示的整数
%g 自动选择合适的表示法

函数范例

#include <stdio.h>
int main(void)
{FILE *in,*out;in = fopen("\\AUTOEXEC.BAT", "rt");if(in == NULL){fprintf(stderr, "Can not open inputfile.\n");return 1;}out = fopen("\\AUTOEXEC.BAT", "wt");if(out == NULL){fprintf(stderr, "Can not open outputfile.\n");return 1;}while(!feof(in))fputc(fgetc(in), out);fclose(in);fclose(out);return 0;
}

sprintf
功能:把格式化的数据写入某个字符串中。sprintf 是个变参函数。
原型

int sprintf( char *buffer, const char *format, [ argument] … );

参数列表
buffer:char型指针,指向将要写入的字符串的缓冲区。
format:格式化字符串。
[argument]…:可选参数,可以是任何类型的数据。
返回值
返回写入buffer 的字符数,出错则返回-1. 如果 buffer 或 format 是空指针,且不出错而继续,函数将返回-1,并且 errno 会被设置为 EINVAL。
sprintf 返回被写入buffer 的字节数,结束字符‘\0’不计入内。即,如果“Hello”被写入空间足够大的buffer后,函数sprintf 返回5。[1]

注:使用sprintf 对于写入buffer的字符数是没有限制的,这就存在了可能buffer溢出。解决这个问题,可以考虑使用 snprintf函数,该函数可对写入字符数做出限
sprintf格式的规格如下所示。[]中的部分是可选的。
%[指定参数][标识符][宽度][.精度]指示符
若想输出’%’本身时, 请使用’%%’处理。
1. 处理字符方向。负号时表示从后向前处理。
2. 填空字元。 0 的话表示空格填 0;空格是内定值,表示空格就放着。
3. 字符总宽度。为最小宽度。
4. 精确度。指在小数点后的浮点数位数。
转换字符
%% 印出百分比符号,不转换。
%c 整数转成对应的 ASCII 字元。
%d 整数转成十进位。
%f 倍精确度数字转成浮点数。
%o 整数转成八进位。
%s 整数转成字符串。
%x 整数转成小写十六进位。
%X 整数转成大写十六进位。

例子

#include <stdio.h>
int main( void ){char  buffer[200], s[] = "computer", c = 'l';int   i = 35, j;float fp = 1.7320534f;// 格式化并打印各种数据到bufferj  = sprintf( buffer,    "   String:    %s\n", s ); // C4996j += sprintf( buffer + j, "   Character: %c\n", c ); // C4996j += sprintf( buffer + j, "   Integer:   %d\n", i ); // C4996j += sprintf( buffer + j, "   Real:      %f\n", fp );// C4996printf( "Output:\n%s\ncharacter count = %d\n", buffer, j );
}

输出结果[1] :
Output:
String: computer
  
Character: l
Integer: 35
Real: 1.732053
character count = 79

printf函数,fprintf函数,sprintf函数相关推荐

  1. c语言puts函数用法菜鸟,sprintf()函数的用法总结

    sprintf()函数的程序用例: #include #include int main(void) { char buffer[80]; sprintf(buffer, "An appro ...

  2. C库函数:scanf、fscanf、printf、fprintf、sprintf、 snprintf

    1. scanf 函数原型 int scanf(const char *format, ...);  功能:从标准输入 stdin 读取格式化输入. 2.fscanf 函数原型 int fscanf( ...

  3. stderr和stdout(printf、fprintf、sprintf)(转)

    先区分一下:printf,sprintf,fprintf. 1,printf就是标准输出,在屏幕上打印出一段字符串来. 2,sprintf就是把格式化的数据写入到某个字符串中.返回值字符串的长度. 3 ...

  4. C语言 sprintf 函数 - C语言零基础入门教程

    目录 一.sprintf 函数简介 二.sprintf 函数使用 三.sprintf/fprintf/printf 函数区别 四.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 ...

  5. php sprintf 小数,php sprintf函数

    定义和用法 sprintf() 函数把格式化的字符串写写入一个变量中.sprintf(format,arg1,arg2,arg++) 参数 描述 format 必需.转换格式. arg1 必需.规定插 ...

  6. php sprintf 漏洞,解析php sprintf函数漏洞

    php sprintf函数漏洞 0x01 了解sprintf()函数 1,sprintf(),函数是php中的函数 2,作用是将格式化字符串写入变量中 3,函数形式为sprintf(format,ar ...

  7. sprintf函数出错

    今天调试单片机的时候,使用sprintf函数来拼接字符串,其中有一个变量是从4G模组获取的modbus 数据,结果打印出来的数据一直不对sprintf((char *)send_buf2 , &quo ...

  8. printf与fprintf函数的区别

    printf是标准输出流的输出函数,用来向屏幕这样的标准输出设备输出,而fprintf则是向文件输出,将输出的内容输出到硬盘上的文件或是相当于文件的设备上 printf是有缓冲的输出,fprintf没 ...

  9. linux fprintf sprintf 函数

    目录 前言 fprintf 函数 sprintf 函数 前言 <fgets gets fputs puts 函数> 前面验证了fgets fputs gets puts 是否把新行符存入缓 ...

  10. [转]PHP echo, print, printf, sprintf函数的区别和使用

    1. echo函数: 输出函数,是命令,不能返回值.echo后面可以跟很多个参数,之间用分号隔开,如: echo $myvar1; echo 1,2,$myvar,"<b>bol ...

最新文章

  1. 微信小程序扫描二维码
  2. PHP实现MVC开发: 一个简单的MVC(转)
  3. 数据包注入重放工具aireplay-ng
  4. [unreal4入门系列之四] 熟悉虚幻4项目浏览器界面
  5. TS基础1(类型定义、接口)-学习笔记
  6. Django报错NameError: name 'ListView' is not defined
  7. java的数组(二维)
  8. python install pip 区别_pip install和python -m pip install有什么区别?
  9. LeetCode 1004. 最大连续1的个数 III(双指针+滑动窗口)
  10. 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_09-修改页面-服务端-接口开发...
  11. 【教程向】如何用L298N电机驱动模块与Arduino实现PWM调速
  12. 谷歌邮箱的注册以及GEE的注册使用教程
  13. 中国矿业大学计算机学院推免,j机电学院2008届毕业生推免工作顺利完成
  14. 百度热力图颜色说明_揭秘!张家口100万人口热力图,看完你就知道房子该买哪里了...
  15. gitHub官网访问慢的问题
  16. vue krpano 视角监听
  17. k8s pod内存溢出,自动重启
  18. Django实现分页功能
  19. Robert Marino:欧洲创新的代表性不足,量子计算或能破局
  20. 圣斗士星矢243年前的圣战详细介绍

热门文章

  1. 单工 半双工 全双工的区别
  2. 操作系统第6次实验报告:使用信号
  3. python webkit内核_360浏览器使用meta标签强制使用指定webkit内核 - meta强制用极速模式...
  4. html做成小程序,微信小程序——简单静态网页的制作
  5. BFS(二)二叉树层序遍历(I、II)、二叉树锯齿形层序遍历、N叉树层序遍历
  6. js对象转数组可枚举属性和不可枚举属性
  7. 关于SetCapture和GetCapture
  8. gcrobustvar:基于VAR的稳健性Granger因果检验
  9. MySql 全文检索
  10. 游戏防封技术是学易语言还是学c,易语言写游戏脚本防封执行sqlplus 之后没执行...