thể trùng lặp:
How to reuse an ostringstream?Làm thế nào để bạn xóa một std :: ostringstream dụ để nó có thể được tái sử dụng?
tôi đã được sử dụng để chuyển đổi std::ostringstream
float
và int
giá trị cho chuỗi nhưng tôi không thể tìm thấy anyway để tái sử dụng một ví dụ. Để minh họa cho những gì tôi muốn nói ở đây là sau cùng với những phương pháp mà tôi đã cố gắng sử dụng để xóa các dòng
#include <iostream>
#include <sstream>
using namespace std;
int main() {
ostringstream stream;
stream << "Test";
cout << stream.str() << endl;
stream.flush();
stream << "----";
cout << stream.str() << endl;
stream.clear();
stream << "****";
cout << stream.str() << endl;
return 0;
}
tạo ra
Test
Test----
Test----****
này đem lại cho tôi một vấn đề như tôi phải tạo ra nhiều trường hợp của ostringstream
là lãng phí. Rõ ràng clear()
và flush()
không làm những gì tôi cần như vậy là có một cách để làm điều này? Tôi đã kiểm tra tài liệu tại http://www.cplusplus.com/reference/iostream/ostringstream/ nhưng không có gì ở đó dường như làm những gì tôi cần. Có cách nào để đặt lại hoặc xóa luồng không ??
+1: Đã được về để nói chính xác cùng Điều. Mặc dù làm 'stream.str (" ");' luôn luôn cảm thấy như một hack với tôi. –
Thường đồng ý với bài đăng của bạn ngoại trừ phần bắt đầu bằng * Hoặc tốt hơn: * và phần còn lại sau. Bạn không thể nghĩ rằng đó là ** tốt hơn **, phải không ?! –
@HappyGreenKidNaps: Đây chỉ là một ví dụ. Tất nhiên bạn có thể viết 'std :: cout << 10' và được thực hiện với nó. Nếu tôi cần một chuỗi, tôi muốn nói 'std :: to_string (10)', tôi giả sử. –