C语言sprintf方法使用例子

sprintf使用例子:

1、BCD转换成字符

char src = 0x3A;
char tmp[6];
memset(tmp, 0x00, sizeof(tmp));
sprintf(tmp, "%02X", src);

说明:
1)打印出tmp为3A
2)%02X含义:
02:0表示长度不足用0填充,2表示格式化后总长度是2
X:表示以大写16进制形式输出

2、字符串数值相加

char * p = "000000000100";
char * p2 = "000000000099";
char * p3 = "000000876666";
double d = 0.0;
d = atof(p); //atof字符串转double
d += atof(p2);
d += atof(p3);
char temp[16];
memset(temp, 0x00, sizeof(temp));
sprintf(temp, "%016.0lf", d);

说明:
1)打印出temp为0000000000876865
2)%016.0lf含义:
016:0表示长度不足用0来填充,16表示格式化后的总长度是16
.0lf:.0表示小数点后长度是0,整数部分=总长度-小数点后长度。lf是long float型,与double同义

3、int转字符串

int i = 11;
char buf[6];
memset(buf, 0x00, sizeof(buf));
sprintf(buf, "%04d", i);

说明:
1)打印出buf为:0011
2)%04d说明:
04:0表示长度不足用0填充,4表示格式化后总长度是4
d:表示以整数形式输出

4、字符串不足位数前补0

sprintf(pde3901.value +9, "%0*d%s", 11-strlen(INST_CODE_JCB), 0, INST_CODE_JCB); //不足11位前补0

说明:
1)%0*d%s:
0*:*表示自定义参数,即第一个参数,11-strlen(INST_CODE_JCB)要补位的长度,但是如果原本就是字符串不会补0,只会补空格
d:表示以整数形式输出第二个参数,即后面的0
%s:表示以字符串形式输出INST_CODE_JCB

5、文件写入16进制数
fprintf写入文件遇到0x00就结束了,后面都用空格代替。写入16进制要用fwrite函数

fwrite(file_header.sBitMap, 16, 1, fp);

6、%s中的小数点

sprintf(sMsg, "SQLCODE = [%d], MSG = [%.*s]", sqlca.sqlcode, sqlca.sqlerrm.sqlerrml, sqlca.sqlerrm.sqlerrmc);

说明:
1)%.*s:
点的作用:%m.ns中m表示整个字符串的总长度,长度不足补空格,n表示从相应的字符串中最多取用的字符数
星号的作用:这里用*代替了%m.ns中的n,表示动态的精度设置。对应的变量是sqlca.sqlerrm.sqlerrml

时间: 2024-09-19 08:55:52

C语言sprintf方法使用例子的相关文章

新手怎么思考c语言书上的例子

问题描述 新手怎么思考c语言书上的例子 c语言新手一枚,自学中,现在很不熟练. 面对书上稍微复杂一点的例子, 脑子里就一团浆糊.所以昨天开始就试着在敲例子前画程序流程图.然后再敲,请问这种方法是对的吗?如果不是或者有什么要补充的麻烦给我讲一下,谢谢啦! 解决方案 最好找一个懂程序的人教你下.看下人家是怎么写程序的. 我见过一些初学者遇到的困难,是因为他们完全是根据书本上写好的程序在模仿.但是这有一个问题,就是看不到程序从无到有的过程. 好比根据烧好的菜去研究烹饪或者根据画好的画去学习素描,这都是

编程c语言-C语言大型程序一个例子为什么不能运行

问题描述 C语言大型程序一个例子为什么不能运行 我编写了两张图里四个文件,一个.h和三个.c,然后按照给出的那个命令运行,却出现一堆错误和warning,怎么回事?一般大点的程序按这种编写方法怎么链接和用什么命令运行? 解决方案 warning不影响运行,没有error就行 解决方案二: 有时候编译器的版本不一样也会出错的,也有课能本上给出的代码是伪代码 解决方案三: C语言实现的一个程序只能运行一次,不能重复运行 解决方案四: 这是用gcc运行是的错误 解决方案五: 要用gcc -o命令先编译

CodeIgniter多语言实现方法详解_php实例

本文实例分析了CodeIgniter多语言实现方法.分享给大家供大家参考,具体如下: CI应用目录下有一个language语言包目录,用来配置多种不同的语言.语言的配置位于config文件中,配置格式如下: 复制代码 代码如下: $config['language'] = 'english'; 定义语言文件 language下有个空的english目录,即上面定义的系统默认语言目录,系统会从该目录加载语言包文件.如果要定义不同的语言包,如zh_cn,则创建zh_cn目录并配置相应语言包文件即可.

PHP检测用户语言的方法

  本文实例讲述了PHP检测用户语言的方法.分享给大家供大家参考.具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 function getPreferredLanguage() { $langs = array(); if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { // break up string into pieces (languages and q facto

格式工厂修改皮肤跟语言的方法

  格式工厂是一款非常好用的视频格式转换器,不少从事视频编辑或者广告宣传片制作的网友都非常喜欢这款软件.而在使用格式工厂的过程中,不少电脑用户都想根据自己的使用习惯来修改一下格式工厂的皮肤跟语言.下面,小编就给大家分享一下格式工厂修改皮肤和语言的方法! 格式工厂皮肤跟语言设置: 1:在工具栏里面看到,这里的皮肤.当前是黑色的,晚上的时候,黑色就不会觉得比较刺眼. 格式工厂 2:这是选择语言的,这里我点击的英文,所以就可以到格式工厂界面是用英文的. 格式工厂 3:这是选择更多的语言的.什么语言都有

数组-求关于C语言的五子棋程序例子

问题描述 求关于C语言的五子棋程序例子 实现一个五子棋游戏程序编制,棋盘是15X15的方格,棋子放交叉点 , 解决方案 可以 Google 到一些有用的资源的 C语言设计一个人机对战的五子棋程序 VC实现五子棋游戏的一个算法示例 解决方案二: 这里有几个现成的http://download.csdn.net/download/q511249662/3271854http://down.51cto.com/data/68237http://download.csdn.net/detail/enjo

代码-如何区别C语言排序方法?

问题描述 如何区别C语言排序方法? C语言排序方法冒泡法.选择法.插入法.折半查找法,这几种方法如何区别呢?代码分别如何表达呢?求大侠指点 解决方案 C语言中的排序方法C语言的一些排序方法c语言基础知识之排序方法 解决方案二: 你先弄清楚各个排序的原理,就能区分了

tcpip协议-谁有Fortran语言实现tcpip的例子?

问题描述 谁有Fortran语言实现tcpip的例子? 谁有Fortran语言实现tcpip的例子?实现两个程序之间的通信,Socket实现两个程序之间数据的交换. 解决方案 http://computer-programming-forum.com/49-fortran/8c98c45864f35dd0.htm

PHP检测用户语言的方法_php技巧

本文实例讲述了PHP检测用户语言的方法.分享给大家供大家参考.具体如下: function getPreferredLanguage() { $langs = array(); if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { // break up string into pieces (languages and q factors) preg_match_all('/([a-z]{1,8}(-[a-z]{1,8})?)\s*(;\s*q\s*=\