sprintf用法(很强大啊)
printf可能是许多程序员在开始学习C语言时接触到的 第二个函数(我猜第一个是main),说起来,自然是老朋友了,可是,你对这个老朋友了解多吗?你对它的那个孪生兄弟sprintf了解多吗?在将各种类 型的数据构造成字符串时,sprintf的强大功能很少会让你失望。
//把整数123打印成一个字符串保存在s中。
sprintf(s, "%d", 123); //产生"123"
sprintf(s, "%8d%8d", 123, 4567); //产生:" 123 4567"
sprintf(s, "%-8d%8d", 123, 4567); //产生:"123 4567"
sprintf(s, "%8x", 4567); //小写16进制,宽度占8个位置,右对齐
sprintf(s, "%-8X", 4568); //大写16进制,宽度占8个位置,左对齐
sprintf(s, "%08X", 4567); //产生:"000011D7"
short si = -1;
sprintf(s, "%04X", si);
sprintf(s, "%04X", (unsigned short)si);
unsigned short si = -1;
sprintf(s, "%04X", si);
sprintf(s, "%f", 3.1415926); //产生"3.141593"
sprintf(s, "%10.3f", 3.1415626); //产生:" 3.142"
sprintf(s, "%-10.3f", 3.1415626); //产生:"3.142 "
sprintf(s, "%.3f", 3.1415626); //不指定总宽度,产生:"3.142"
int i = 100;
sprintf(s, "%.2f", i);
sprintf(s, "%.2f", (double)i);
for(int i = 32; i < 127; i++) {
printf("[ %c ]: %3d 0x%#04X/n", i, i, i);
}
char* who = "I";
char* whom = "CSDN";
sprintf(s, "%s love %s.", who, whom); //产生:"I love CSDN. "
char a1[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G'};
char a2[] = {'H', 'I', 'J', 'K', 'L', 'M', 'N'};
sprintf(s, "%s%s", a1, a2); //Don't do that!
sprintf(s, "%7s%7s", a1, a2);
sprintf(s, "%.7s%.7s", a1, a2);//产生:"ABCDEFGHIJKLMN"
sprintf(s, "%.6s%.5s", a1, a2);//产生:"ABCDEFHIJKL"
sprintf(s, "%.*s%.*s", 7, a1, 7, a2);
sprintf(s, "%.*s%.*s", sizeof(a1), a1, sizeof(a2), a2);
sprintf(s, "%-*d", 4, 'A'); //产生"65 "
sprintf(s, "%#0*X", 8, 128); //产生"0X000080","#"产生0X
sprintf(s, "%*.*f", 10, 2, 3.1415926); //产生" 3.14"
sprintf(s, "%u", &i);
sprintf(s, "%08X", &i);
sprintf(s, "%p", &i);
我觉得它实际上就相当于:
sprintf(s, "%0*x", 2 * sizeof(void *), &i);
int len = sprintf(s, "%d", i);
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main() {
srand(time(0));
char s[64];
int offset = 0;
for(int i = 0; i < 10; i++) {
offset += sprintf(s + offset, "%d,", rand() % 100);
}
s[offset - 1] = '/n';//将最后一个逗号换成换行符。
printf(s);
return 0;
}
time_t t = time(0);
//产生"YYYY-MM-DD hh:mm:ss"格式的字符串。
char s[32];
strftime(s, sizeof(s), "%Y-%m-%d %H:%M:%S", localtime(&t));
①获取System时间: void GetSystemTime(LPSYSTEMTIME lpSystemTime); 下面是例子:
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
void main() {
SYSTEMTIME st; //定义存放时间的结构体
char strTime[256];
int n=0;
GetSystemTime(&st);
n = sprintf(strTime,"Year:/t%d/n",st.wYear);
n += sprintf(strTime+n,"Month:/t%d/n",st.wMonth);
n += sprintf(strTime+n,"Day:/t%d/n",st.wDay);
n += sprintf(strTime+n,"Date:/t%d/n",st.wDayOfWeek);
n += sprintf(strTime+n,"Hour:/t%d/n",st.wHour);
n += sprintf(strTime+n,"Minute:/t%d/n",st.wMinute);
n += sprintf(strTime+n,"Second:/t%d/n",st.wSecond);
n += sprintf(strTime+n,"MilliSecond:/t%d/n",st.wMilliseconds);
printf("%s",strTime);
system("pause");
}
sprintf用法(很强大啊)相关推荐
- sprintf用法大全
sprintf用法大全 printf 可能是许多程序员在开始学习C 语言时接触到的第二个函数(我猜第一个是main),说起来,自然是老朋友了,可是,你对这个老朋友了解多吗?你对它的那个孪生兄弟spri ...
- sed很强大的文本操作命令
sed对文本的处理很强大,并且sed非常小,参数少,容易掌握,他的操作方式根awk有点像.sed按顺序逐行读取文件.然后,它执行为 该行指定的所有操作,并在完成请求的修改之后的内容显示出来,也可以存放 ...
- EL表达式中fn函数的强大功能,很简单,很好用,很强大
很简单,很强大,EL表达式中fn函数的强大功能,比如举个例子,要计算某个对象中的某个集合的大小,直接用EL表达式就可以计算出来-- ${fn:length(clazze.course)} 使用fn函数 ...
- sprintf用法解析
sprintf用法解析1:sprintf 最常见的应用之一莫过于把整数打印到字符串中,所以,spritnf 在大多数场合可以替代itoa.这样,一个整数的16 进制字符串就很容易得到,但我们在打印16 ...
- 计算机视觉,图像处理 经典代码paper整理(很全很强大!)
转自:Jia-Bin Huang 同学收集了很多计算机视觉方面的代码 ,链接如下: https://netfiles.uiuc.edu/jbhuang1/www/resources/vision/in ...
- 【Python】用 Highcharts 绘制饼图,也很强大
来源:Python数据之道 作者:Peter 整理:阳哥 用 Highcharts 绘制饼图,也很强大 前不久,分享了读者投稿的文章,较为综合的介绍了可视化库 Highcharts ,这个一个 Jav ...
- 肝!用 Highcharts 绘制饼图,也很强大
来源 / Python数据之道 作者/Peter 整理/阳哥 用 Highcharts 绘制饼图,也很强大 前不久,分享了读者投稿的文章,较为综合的介绍了可视化库 Highcharts ,这个一个 ...
- 表单和字都居中_APP 分享 | 6 款黑科技工具,低调收藏,每一款都很强大!
iSlide 简单.高效地制作PPT 使用环境: Windows 使用要求: Office 2010 及以上版本 授权状况: 无广告 有付费功能 官网地址: www.islid ...
- java 跨平台很鸡肋,Mac 篇八:Mac上的这个软件看起来很鸡肋,其实很牛很强大
Mac 篇八:Mac上的这个软件看起来很鸡肋,其实很牛很强大 2019-11-26 11:37:36 8点赞 42收藏 1评论 用了很多年Mac,可能这个应用都没有注意到,看起来不起眼,其实用好它,不 ...
最新文章
- 中国AI登上Nature子刊:看病历分析儿科疾病,准确率90%,超人类医师
- C什么k什么_cssci跟c刊有什么区别
- python猜数游戏流程_Python 猜数字游戏
- 工程之星android版使用,安卓版工程之星软件网络1+1模式及网络cors连接操作详解...
- Ant Design Vue页面数据复制
- 在Unity内使用对象池并实现线程安全的单例模式
- Badboy+Jmeter进行性能测试
- Akka创建第一个Actor《nine》译
- VS2015 编译问题记录(更新)
- 【转】MySql常用函数大全
- Express框架学习笔记-静态资源的处理
- 腾讯大讲堂 微信红包系统设计 优化
- 转行3D建模,C4D与3ds Max哪个更好入门就业
- android手机屏幕投影,安卓手机屏幕投影到电脑(笔记本)教程分享
- 高并发设计的技术方案
- iphone查看python文件_通过python获取苹果手机备份文件中的照片,视频等信息采集...
- javaweb之msql学习笔记
- Excel数据导出图片
- DB2表空间状态列表
- UPUPOO返回码格式!!!