BCB 格式化字符串求教

shinerise 2013-07-18 03:39:51
需要格式化一个字符串到一个String中。我目前的做法是
char ptest[1024];
sprintf(ptest,"some format");

AnsiString str(ptest)

这种方式,感觉怪怪的。有没有直接定义一个String类,然后直接str.sprintf()来格式化这个str类的?
我写str.sprintf("some format"),会提示“Cannot convert 'char' to const wchar_t”
哪位能指点一下?或者给个sample让我学习一下,多谢多谢。
...全文
202 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccrun.com 2013-07-19
  • 打赏
  • 举报
回复
引用 4 楼 shinerise 的回复:
我原来用String的sprintf,结果提示需要w_char型。用TEXT()将格式化字符串括起来,也不行。
这是因为你的工程中,_TCHAR映射的是char,也就是说相当于没有定义_UNICODE,如此而已。
shinerise 2013-07-18
  • 打赏
  • 举报
回复
多谢各位。我原来用String的sprintf,结果提示需要w_char型。用TEXT()将格式化字符串括起来,也不行。但是用AnsiString就没任何问题了。多谢。
ccrun.com 2013-07-18
  • 打赏
  • 举报
回复
如果使用AnsiString,那么这样: AnsiString str = AnsiString().sprintf("%d", a + b); 如果使用UnicodeString,那么这样: UnicodeString str = UnicodeString().sprintf(L"%d", a + b);
ccrun.com 2013-07-18
  • 打赏
  • 举报
回复
就用String提供的sprintf
int a = 10, b = 5;
String str = String().sprintf(TEXT("%d"), a + b);
ShowMessage(str);
sololie 2013-07-18
  • 打赏
  • 举报
回复
sprintf int i =11111; AnsiString s; s.sprintf("%d",i); ShowMessage(s); ================ Format // ARRAYOFCONST 是个cb预定义的宏 //#define ARRAYOFCONST(values) OpenArray<TVarRec>values, OpenArrayCount<TVarRec>values.GetHigh() AnsiString s = Format("My name is %s, I'm %d years old.", ARRAYOFCONST(("Phoenix2000", 22)) ); ShowMessage(s);

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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