摘要: 打印地址信息 有时调试程序时,我们可能想查看某些变量或者成员的地址,由于地址或者指针也不过是个32 位的数,你完全可以使用打印无符号整数的“%u”把他们打印出来: sprintf(s, "%u", &i); 不过通常人们还是喜欢使用16 进制而不是10 进制来显示一个地址: sprintf(s, "%08X", &i); 然而,这些都是间接的方法,对于地址打印,... 阅读全文
posted @ 2012-11-15 23:53 浪里飞 阅读(875) 评论(0) 推荐(0) 编辑
摘要: 连接字符串 sprintf 的格式控制串中既然可以插入各种东西,并最终把它们“连成一串”,自然也就能够连接字符串,从而在许多场合可以替代strcat,但sprintf 能够一次连接多个字符串(自然也可以同时在它们中间插入别的内容,总之非常灵活)。比如: char* who = "I"; char* whom = "CSDN"; sprintf(s, "%s love ... 阅读全文
posted @ 2012-11-15 23:47 浪里飞 阅读(7282) 评论(0) 推荐(0) 编辑
摘要: 我们知道,在C/C++语言中,char 也是一种普通的scalable 类型,除了字长之外,它与short,int,long 这些类型没有本质区别,只不过被大家习惯用来表示字符和字符串而已。(或许当年该把这个类型叫做“byte”,然后现在就可以根据实际情况,使用byte 或short 来把char 通过typedef 定义出来,这样更合适些)于是,使用”%d”或者”%x”打印一个字符,便能得... 阅读全文
posted @ 2012-11-15 23:16 浪里飞 阅读(462) 评论(0) 推荐(0) 编辑
摘要: 这里要注意一个符号扩展的问题:比如,假如我们想打印短整数(short)-1 的内存16 进制表示形式,在Win32 平台上,一个short 型占2 个字节,所以我们自然希望用4 个16 进制数字来打印它: short si = -1; sprintf(s, "%04X", si); 产生“FFFFFFFF”,怎么回事?因为spritnf 是个变参函数,除了前面两个参数之外,... 阅读全文
posted @ 2012-11-15 00:27 浪里飞 阅读(654) 评论(0) 推荐(0) 编辑
摘要: 表头文件 #include<stdio.h> 定义函数 int sprintf( char *str,const char * format,.........); 函数说明 sprintf()会根据参数format字符串来转换并格式化数据,然后将结果复制到参数str所指的字符串数组,直到出现字符串结束(’\0’)为止。关于参数format字符串的格式请参考pr... 阅读全文
posted @ 2012-11-15 00:18 浪里飞 阅读(454) 评论(0) 推荐(0) 编辑