我的代碼存在一些問題,因爲它輸出兩個不同的結果。Ostringstream不同的結果
的代碼:
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
這是正確的調用它像:輸出(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
這是錯誤的,我怎麼能仍然在一個類中定義他們,並得到像第一個例子一樣的輸出?
請幫幫我。
那仍然不回答我的問題,如何使用類和獲得相同的輸出像第一個例子 – 2013-04-21 10:22:37
@annaSjolvikaz請參閱編輯。 – stardust 2013-04-21 10:25:20
它說:函數不帶1個參數,並指向:v.result.c_str(「」); – 2013-04-21 10:25:53