怎么用sprintf 让字符串换行显示?

rainydan 2009-05-03 01:36:45
我期望的结果:
气泡:1 面积:10
气泡:2 面积:20

我编的代码如下:
for(int i=2;i<50;i++)
{
if(m_Mark.Mark[i]!=0)
{
g+=sprintf(ss+g, "气泡:%2d 面积: %.1f\n",n,m_Mark.Mark[i]);
SetDlgItemText(IDC_Label2, szStr);
n++;
}
}
可是显示出来的是这样:
气泡:1 面积:10|气泡:2 面积:20|

大家帮我看看怎么回事,"\n" 到底加在哪啊?
...全文
3165 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
rainydan 2009-05-03
  • 打赏
  • 举报
回复
感谢大家,我自己解决了,不是代码的问题。
原先我是想把文字输出在编辑控件里,后来试了一下静态文本框,呵呵,就解决了,虽然不知道为什么,我比较菜。
总之,感谢上面的朋友~~
shenjigong19801109 2009-05-03
  • 打赏
  • 举报
回复
char szText[256];

sprintf(szText, "气泡:%2d\n面积: %.1f\n",n,m_Mark.Mark[i]);
rainydan 2009-05-03
  • 打赏
  • 举报
回复
这样我也试了,不行,输出的是:气泡:1 面积:10||气泡:2 面积:20||
agchen81 2009-05-03
  • 打赏
  • 举报
回复
用“\r\n”
换行也是有多种转移符的,dos和linux终端用“\n”
但在MFC界面显示中要用“\r\n”。
1)echo,print,printf,sprintf 前两个函数是输出字符串.字符串中如果有变量名则被替换成其值. 后两个函数类似于C的同名函数. (2)strchr,strlen,strtok,strrchr,strrev,strstr,strtolower, strtoupper,substr,ucfirst 这些是常用的字符串操作函数,有些和C中的同名函数意义完全一致. strrev是把一个字符串翻转. strtolower和strtoupper的意思应该不用解释了. ucfirst是把字符串的第一个字符变成大写. substr是返回字符串的一个子串,用法是:substr(字符串,头,长度). 头位置是 从0算起的.如果是负数,则是从尾部向前数的意思. (3)Chr,Ord 类似于C的同名函数. (4)explode,implode,join 这些是和数组有关的函数. explode(字符串,分割符)返回一个将字符串在分割符处分开所产生的数组. implode(数组,分割符)返回一个将数组各元素之间插上分割符而成的字符串. join与implode意义相同. (5)Chop 去掉字符串尾部的空白. (6)htmlspecialchars 将字符串中的HTML特殊字符换成它们的名字,例如\"<\"变成\"<\". (7)nl2br 在字符串中的每一个回车前面加上\"<BR>\". (8)AddSlashes,StripSlashes 分别给字符串中需要加上\"\\"才能用于数据库查询的字符加上和去掉\"\\". (9)parse_str 将\"name1=value1&name2=value2&...\"类型的字符串分析成一些变量. 例如: parse_str(\"a=1&b=2\"); 生成a与b两个变量,值分别为1,2. 如果有两对名字/值的名字部分相同,则后一个的值覆盖前一个的. 如果这两对的名字尾部都有\"[]\",例如\"a[]=1&a[]=2\",则生成数组a,两个元素分别为1,2

70,012

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧