gpt4 book ai didi

c++ - 为什么我的简单字符串构造不正确?

转载 作者:行者123 更新时间:2023-11-28 00:31:21 25 4
gpt4 key购买 nike

我有一个简单的函数,它构建一个简单的“电影”对象的字符串表示。我正在做这个......

string Movie::getDisplayText() {
ostringstream oss;
oss << "Title: " << this->getTitle() << "\tYear: "+this->getYear() << "\tGenre: " << this->getGenre();
string ret = oss.str();

return ret;
}

但是构建并返回的字符串看起来像这样......

\�tle: Star Wars�B
Genre: Science-Fiction

当我添加此行以测试值是否有效时...

cout << "DEBUG Title: " << this->getTitle() << "\tYear: "+this->getYear() << "\tGenre: " << this->getGenre() << "\n" << endl;

...它输出到“cout”一个看起来正确的字符串,所以我知道这些值都已正确初始化...

DEBUG title='Star Wars'; year='1977'; genre='Science-Fiction';

我的 ostringstream 代码有什么问题?

最佳答案

你有这个:

string Movie::getDisplayText() {
ostringstream oss;
oss << "Title: " << this->getTitle() << "\tYear: "+this->getYear() << "\tGenre: " << this->getGenre();
string ret = oss.str();

return ret;
}

应该是

string Movie::getDisplayText() {
ostringstream oss;
oss << "Title: " << this->getTitle() << "\tYear: " << this->getYear() << "\tGenre: " << this->getGenre();
string ret = oss.str();

return ret;
}

不是\tYear: 之后的区别。原因是将字符串文字和 int 添加在一起不会导致串联。

关于c++ - 为什么我的简单字符串构造不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22800848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com