
sprintf跟printf在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。
如:
//把整数123 打印成一个字符串保存在s 中。
sprintf(s, "%d", 123); //产生"123"
可以指定宽度,不足的左边补空格:
sprintf(s, "%8d%8d", 123, 4567); //产生:" 123 4567"
当然也可以左对齐:
sprintf(s, "%-8d%8d", 123, 4567); //产生:"123 4567"
也可以按照16 进制打印:
sprintf(s, "%8x", 4567); //小写16 进制,宽度占8 个位置,右对齐
sprintf(s, "%-8X", 4568); //大写16 进制,宽度占8 个位置,左对齐
此句的意思是把整数w转换成字符串存放在st当中,详细说明如下:
C语言中sprintf()函数的用法
1、该函数包含在stdioh的头文件中。
2、sprintf和平时我们常用的printf函数的功能很相似。sprintf函数打印到字符串中,而printf函数打印输出到屏幕上。sprintf函数在我们完成其他数据类型转换成字符串类型的 *** 作中应用广泛。
3、sprintf函数的格式:int sprintf( char string_buffer, const char format_string[, args] ); 除了前两个参数固定外,可选参数可以是任意个。buffer是字符数组名;format是格式化字符串(像:"%3d%62f%#x%o",%与#合用时,自动在十六进制数前面加上0x)。只要在printf中可以使用的格式化字符串,在sprintf都可以使用。其中的格式化字符串是此函数的精华。
4、char str[20]; double f=;sprintf(str,"%62f",f);可以控制精度
5、char str[20];int a=,b=xxx;sprintf(str,"%d%d",a,b);可以将多个数值数据连接起来。
6、char str[20];char s1[5]={'A','B','C'};char s2[5]={'T','Y','x'};sprintf(str,"%3s%3s",s1,s2);可以将多个字符串连接成字符串%mn在字符串的输出中,m表示宽度,字符串共占的列数;n表示实际的字符数。%mn在浮点数中,m也表示宽度;n表示小数的位数。
7、可以动态指定,需要截取的字符数char s1={'A','B','C'};char s2={'T','Y','x'};sprintf(str,"%s%s",2,s1,3,s2);
8、sprintf(s, "%p", &i);可以打印出i的地址上面的语句相当于sprintf(s, "%0x", 2 sizeof(void ), &i);
9、sprintf的返回值是字符数组中字符的个数,即字符串的长度,不用再调用strlen(s)求长度。
直接复制的在那一句最后边多了两个字符
去掉后编译无错
请检查你是否输入错误,没有错误的话请更换最新版keil C51。
还有就是51对浮点型的运算是调用库执行的,效率很低,建议优化,还有sprintf函数虽然使用方便,但是编译后占用2k空间,对51这种flash不大的单片机来说比较浪费,建议尽量不用,自己写的会比调用这个函数占用的资源小很多。
sprintf是C语言函数,需要添加头文件#include \r是换行,\n是回车 \r\n 你试一下吧,应该可以实现换行了, 看下这个例子吧,可以下载,应该对你有所帮助 http://wwwvckbasecom/document/viewdoc/id=639 祝你成功,,, 查看更多答案>>
希望采纳
//头文件
#include <stdioh>
int main(void)
{
int a, b;
char buffer[100];
a = 100;
b = 200;
//和在c里使用没什么区别
sprintf(buffer, "%d", a + b);
printf("%s", buffer);
}
有,就是istringstream,你可以自己找些这方面的资料,和sprintf很类似的
istringstream用法
istringstream对象可以绑定一行字符串,然后以空格为分隔符把该行分隔开来。
#include<iostream>
#include<sstream>
using namespace std;
int main()
{
string str, line;
while(getline(cin, line))
{
istringstream stream(line);
while(stream>>str)
cout<<strc_str()<<endl;
}
return 0;
}
测试:
input:
abc df e efgeg ffg
ouput:
abc
df
e
efgeg
ffg
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)