如何打印位置

时间:2012-02-02 14:24:59

标签: c++ string

由于x_str,y_str是本地的,我在这个函数中没有得到正确的输出。 (在x_str和y_str的位置打印非法字符) 我不想再向我的班级添加2个成员变量x_str,y_str。

因此可以替换此函数以获得正确的输出。

string Pos::getPosReport(){
        string x_str;
        x_str = x;
        string y_str;
        y_str = y;
       return string("(" + x_str + "," + y_str + ")" );
    }

编辑:

class Pos {
    int x;
    int y;
public:
    Pos();
    Pos(Pos const&);
    Pos(int,int);

    Pos&     operator=(Pos const&);
    bool    operator==(Pos const&);
    bool    operator!=(Pos const&);

    void    setPos(Pos const&);
    void    setPos(int,int);

    void    setx(int);
    void    sety(int);

    int    getx() const ;
    int    gety() const ;

    string getPosReport();

    virtual ~Pos();
};

2 个答案:

答案 0 :(得分:5)

std::stringstream ss;
ss << "(" << x << "," << y << ")";
return ss; 

(这是整个功能体)。

答案 1 :(得分:1)

问题不在于x_stry_str是局部变量,而是分配不按预期执行。那不是你将int转换为string

您可以使用_itoa()int转换为char*stringstream,如迈克尔的答案所示。