std:string 有没有实现sprintf 类似操作?

heyongzhou 2009-05-22 10:47:03
std:string 有没有实现sprintf 类似操作?
我要把一些数字放入一个std:string,不知道怎么搞?
不然就得定义char[100],然后拿sprintf 格式化,然后放回来std:string,很麻烦。
...全文
4656 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
天王 2011-12-23
  • 打赏
  • 举报
回复
boost::format 学习了 查一下 多谢了
李培 2009-11-23
  • 打赏
  • 举报
回复
Format就sprintf
scsnsjsl_cs_dn 2009-05-23
  • 打赏
  • 举报
回复
学习
老邓 2009-05-22
  • 打赏
  • 举报
回复
没有。
但boost::format是一个类似的东西,纯C++。
  • 打赏
  • 举报
回复
你sprintf到char型数据里,然后再+=到string里就是了。
机智的呆呆 2009-05-22
  • 打赏
  • 举报
回复

#include <sstream>
#include <iostream>
using namespace std;
int main()
{
ostringstream buf;
int i= 10;
float j=0.3;
buf<<"i="<<i<<endl;
buf.precision(10);
buf<<"j="<<j<<endl;
cout<<buf.str()<<endl;
}

hjjdebug 2009-05-22
  • 打赏
  • 举报
回复
代码如下,看看是这个效果吗。 c++ 的 替代 sprintf

#include <iostream>
#include <sstream>
using namespace std;

void main()
{
char buffer[256];
int i=3;
double d=5.5;
sprintf(buffer,"%i %f",i,d);
cout << buffer <<endl;

stringstream ss;
ss<<i<<" "<<d;
string s=ss.str();
cout << s << endl;

system("pause");
}
ltc_mouse 2009-05-22
  • 打赏
  • 举报
回复
先格式化到stringstream如何? 当然,还是得取回,不过比sprintf安全点,不用担心越界问题~
stringstream sstr;
sstr<<12<<" "<<34;
string str=sstr.str();
cout<<str<<endl;
biosli 2009-05-22
  • 打赏
  • 举报
回复
用<<的话,要先放到一个iostream里面,然后再由iostream转换成string。
adventurelw 2009-05-22
  • 打赏
  • 举报
回复
去掉<<中间的空格

string输出(即C++输出)可以支持printf能够实现的几乎所有功能;其余的string本身可以补齐,所以
不必用printf吧。
biosli 2009-05-22
  • 打赏
  • 举报
回复
楼主好好看看他的错误提示。
char * 和 char * 相加的操作是没有的。

因此,你可以先把一个char *转成string, string 和一个char *的加法运算符是stl实现的。比如:
char *chStr = "test str!!"
string srt = string(chStr) + "yes! it\'s done.";
heyongzhou 2009-05-22
  • 打赏
  • 举报
回复
error C2676: 二进制“<<”: “std::string”不定义该运算符或到预定义运算符可接收的类型的转换
erwin1984 2009-05-22
  • 打赏
  • 举报
回复
很负责任的告诉你,没有。

不过可以考虑 >> << 等操作符。
mengde007 2009-05-22
  • 打赏
  • 举报
回复
string str;
getline(cin,str);
或者string str="……";
lzh9955 2009-05-22
  • 打赏
  • 举报
回复
关注!
egoldfish 2009-05-22
  • 打赏
  • 举报
回复
可以用boost::format

64,686

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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