2010-08-18 25 views
49

Tôi rất mới với C++ STL, vì vậy điều này có thể tầm thường. Tôi có một biến số ostream với một số văn bản trong đó.Chuyển đổi ostream thành chuỗi chuẩn

ostream* pout; 
(*pout) << "Some Text"; 

Có cách nào để trích xuất luồng và lưu trữ trong chuỗi loại char* không?

Trả lời

47
 std::ostringstream stream; 
    stream << "Some Text"; 
    std::string str = stream.str(); 
    const char* chr = str.c_str(); 

Và tôi giải thích những gì đang xảy ra trong câu trả lời cho số question, mà tôi đã viết không một giờ trước.

+0

tôi nhận được thông báo lỗi sau: 'struct std :: basic_ostream > 'không có thành viên nào được đặt tên' str ' –

+7

Bao gồm các tiêu đề cần thiết .' # include 'và' #include ' –

+8

Nó không phải là dòng. Nó là ostringstream – Vanuan

3

Hãy thử std::ostringstream

std::ostringstream os; 
    os<<"Hello world"; 
    std::string s=os.str(); 
    const char *p = s.c_str(); 
116

Câu hỏi đặt ra là trên ostream chuỗi, khôngostringstream để chuỗi.

Đối với những người quan tâm đến việc câu hỏi thực tế đã trả lời (cụ thể để ostream), hãy thử này:

void someFunc(std::ostream out) 
{ 
    std::stringstream ss; 
    ss << out.rdbuf(); 
    std::string myString = ss.str(); 
} 
+2

Tôi sẽ cung cấp cho bạn các điểm để trở thành một kẻ lừa đảo. Được rồi .. và cho câu trả lời đúng, heh. – moodboom

+18

Đây là câu trả lời đúng. Câu trả lời ở trên, được đánh dấu là chính xác, KHÔNG trả lời câu hỏi. –

Các vấn đề liên quan