在c++中,如何使用StringBuilder?

Eddydada 2011-07-11 02:54:01
using namespace System;
using namespace System::Text;
这两句在vs2005中,根本编译通不过,各位大侠指点下。

...全文
1490 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eddydada 2011-07-11
  • 打赏
  • 举报
回复
嗯,谢谢各位了,用string挺好的
luciferisnotsatan 2011-07-11
  • 打赏
  • 举报
回复
用stl的string或者MFC的CString

或者说,lz平时一直用的是C++/CLI这个语言,现在要做smart device的开发,发现建不了托管c++ smart device的工程?
云瑀 2011-07-11
  • 打赏
  • 举报
回复
#ifndef _STRING_BUILDER_H
#define _STRING_BUILDER_H

#include "StringElement.h"
#define SB ( StringBuilder() )

class StringBuilder {

private:
std::string _value;

public:
void Clear() {

_value = "";
};

void Append(StringElement element) {

_value.append(element);
};

operator std::string() const {

return _value;
};

StringBuilder &operator<<(StringElement se) {

Append(se); return *this;
};

operator const char *() const {

return _value.c_str();
};
};

#endif _STRING_BUILDER_H


#ifndef _STRING_ELEMENT_H
#define _STRING_ELEMENT_H

#include <string>
#include <sstream>

class StringElement {

private:
template<typename T> std::string ToString(T &val) {

std::stringstream ss;
ss << val;
std::string retVal;
ss >> retVal;

return retVal;
};

std::string _value;

public:
StringElement(int i) : _value(ToString<int>(i)) {
};

StringElement(double d) : _value(ToString<double>(d)) {
};

StringElement(char c) : _value(ToString<char>(c)) {
};

StringElement(char *cp) : _value(cp) {
};

StringElement(const std::string s) : _value(s) {
};

StringElement(long l) : _value(ToString<long>(l)) {
};

StringElement(float f) : _value(ToString<float>(f)) {
};

StringElement(short s) : _value(ToString<short>(s)) {
};

StringElement(bool b) : _value(ToString<bool>(b)) {
};

operator std::string() const {

return _value;
};
};

#endif _STRING_ELEMENT_H


#include "StringBuilder.h"
#include <fstream>

#define SUCCESS 1
#define FAILURE 0

int log(std::string message) {

std::ofstream logfile("log.txt", std::ios::out | std::ios::app);
logfile << message << std::endl;

return SUCCESS;
};

int main() {

log(SB << "The number is " << 1);
int x = 1, y = 2;
printf(SB << "x=" << x << " and y=" << y);
};
RLib 2011-07-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wying158 的回复:]
由于我这个程序必须在smart device中用,所以,不能建立CLR工程啊,没用其他的解决办法了吗?唉
[/Quote]

为什么要用StringBuilder?不要想着StringBuilder在C++中还能发挥优势。

C++也有string,自己封装一下就行。

Eddydada 2011-07-11
  • 打赏
  • 举报
回复
由于我这个程序必须在smart device中用,所以,不能建立CLR工程啊,没用其他的解决办法了吗?唉
luciferisnotsatan 2011-07-11
  • 打赏
  • 举报
回复
StringBuilder是.net框架里的,想要用这个,要用微软出的 C++/CLI 这个变种C++(和C#差不多)。VS建工程时,选VC++=>CLR
luciferisnotsatan 2011-07-11
  • 打赏
  • 举报
回复
建C++/CLR工程
Eddydada 2011-07-11
  • 打赏
  • 举报
回复
是啊,我想在c++中使用StringBuilder,该怎么使用啊
luciferisnotsatan 2011-07-11
  • 打赏
  • 举报
回复
建工程时,建C++/CLI工程。
C++本地代码里没有这个东西。
ryfdizuo 2011-07-11
  • 打赏
  • 举报
回复
这是C#的代码。。。

65,170

社区成员

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

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