我的代码有一些问题,因为它输出了两个不同的结果。
编码:
void output(int x){
for( int i = 0; i <=x; i++){
std::ostringstream ss;
std::string result;
ss << std::setw(5) << std::left << "Hi" << ' ' << "There " << i << "\n";
std::vector<char> s(result.c_str(), result.c_str() + result.size() + 1u);
result +=ss.str();
std::cout << result;
}
}
输出:
你好 0
你好 1
你好 2
你好 3
可以这样称呼它:output(3); ,但是当我试图在一个类中定义它们并使用它时
在函数内部,事情开始变得非常奇怪。我现在使用的代码是:
class myclass{
public:
std::ostringstream ss;
std::string result;
}v;
void output(int x){
for( int i = 0; i <=x; i++){
v.ss << std::setw(5) << std::left << "Hi" << ' ' << "There " << i << "\n";
std::vector<char> s(v.result.c_str(), v.result.c_str() + v.result.size() + 1u);
v.result +=v.ss.str();
std::cout << v.result;
}
}
它输出:
你好 0
你好 0
你好 0
你好 1
你好 0
你好 0
你好 1
你好 0
你好 1
你好 2
你好 0
你好 0
你好 1
你好 0
你好 1
你好 2
你好 0
你好 1
你好 2
你好 3
那是错误的,我怎样才能在一个类中定义它们并获得与第一个示例相同的输出?
请帮我。