bất cứ ai có thể cho tôi biết hoặc chỉ cho tôi một ví dụ đơn giản về cách nối một int vào một chuỗi có chứa từ "Cái gì đó" (hoặc bất kỳ từ nào)?Làm thế nào để sử dụng chuỗi chuỗi C++ để nối thêm int?
Trả lời
stringstream ss;
ss << "Something" << 42;
Để tham khảo trong tương lai, hãy kiểm tra điều này.
tôi có lẽ muốn làm điều gì đó về tự chung này:
#include <string>
#include <sstream>
#include <iostream>
int main() {
std::stringstream stream("Something ");
stream.seekp(0, std::ios::end);
stream << 12345;
std::cout << stream.str();
return 0;
}
Với một dòng bình thường, để thêm vào cuối cùng, bạn sẽ mở ra với std::ios::ate
hoặc std::ios::app
như tham số thứ hai , nhưng với chuỗi suối, điều đó dường như không hoạt động một cách đáng tin cậy (ít nhất với các trình biên dịch thực - không phải gcc cũng như VC++ tạo ra kết quả đầu ra mà tôi mong đợi khi/nếu tôi làm như vậy).
Nếu bạn đang sử dụng tăng, nó có lexical_cast có thể được sử dụng cho việc này. Nó về cơ bản là một phiên bản đóng gói của các bên trên, hoạt động trên bất kỳ loại nào có thể được ghi vào và đọc từ một luồng.
string s("something");
s += boost::lexical_cast<string>(12);
của nó có lẽ không giá trị sử dụng nếu bạn không sử dụng tăng đã có, nhưng nếu bạn là nó có thể làm cho mã của bạn rõ ràng hơn, đặc biệt là làm cái gì đó như
foo(string("something")+boost::lexical_cast<string>(12));
'c_str() 'là sai, nên là 'std :: cout << stream.str();' – Frunsi
@hassan: không, stringstream không có phương thức c_str() – Frunsi
Cảm ơn Neil - ngu ngốc ngu ngốc về phía tôi. –