gpt4 book ai didi

c++ - 如何打印其中包含整数的字符串 C++

转载 作者:行者123 更新时间:2023-11-30 05:16:36 25 4
gpt4 key购买 nike

我在函数内将一个整数附加到一个名为 output 的字符串引用。我在另一个函数中创建了一个名为 output 的字符串,并通过引用将其传递给该函数。但是,当我尝试打印它时,我得到了一堆奇怪的符号��������������������。我尝试使用 sstream 进行输出,但没有成功:

学生.cc

void Student::makeString(string& output){
output += fname + "\t"; // this is a string
output += lname + "\t"; // this is a string
output += id + "\t"; // this is an int
}

IO.cc

void IO::printInfo(Student& student){
string output = "";
student.makeString(output);

// doesnt work
cout << output << endl;

// doesn't work
stringstream ss;
ss << output;
cout << ss.str() << endl;
}

我仍然会看到令人毛骨悚然的角色。帮助!

最佳答案

output += id + "\t"; // this is an int   

相当于

output += (id + "\t");

相当于:

char const* s1 = "\t";
char const* s2 = s1 + id;
output += s2;

除非id10 ,这会导致访问您不应该访问的内存,从而导致未定义的行为。

我猜您想附加 id 的字符串表示形式加上 "\t"output .你可以使用:

output += std::to_string(id);
output += "\t";

关于c++ - 如何打印其中包含整数的字符串 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42605442/

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