字符串流问题,我认为我的代码看起来不错,但它显示奇怪的符号

时间:2016-05-27 01:04:46

标签: c++

我是c ++的新手,并且正在关注一个在线教程,我已经多次复制了这些人代码并且无法弄清楚出了什么问题。它只输出乱码。

我正在使用code :: blocks

这是它输出的内容(下面的链接)

https://gyazo.com/9c2786ef20fb3878354a72904d126f7e

我的实际代码

的main.cpp

#include <iostream>
#include "Person.h"

using namespace std;

 int main()
   {
Person person;

cout << person.toString() << endl;


return 0;
}

Person.cpp

#include "Person.h"
#include <sstream>

Person::Person()
{
age = 0;
name = "jeff";

}

string Person::toString(){
stringstream ss;

ss << "Name: ";
ss << name;
ss << "; age: ";
ss << age;


}

Person.h

#ifndef PERSON_H
#define PERSON_H

#include <iostream>

using namespace std;


class Person{
private:
string name;
int age;

public:
Person();

string toString();

};

#endif // PERSON_H

1 个答案:

答案 0 :(得分:4)

您的代码存在两个问题。您永远不会返回值,您也应该使用stringstream.str()

int main()
{
    Person person;

    cout << person.toString() << endl;

    return 0;
}

string Person::toString() {
    stringstream ss;

    ss << "Name: ";
    ss << name;
    ss << "; age: ";
    ss << age;

    return ss.str();
}