簡體   English   中英

使用 ostringstream 而不是僅使用常規字符串有什么意義?

[英]What is the point of using ostringstream instead of just using a regular string?

我是第一次學習 C++ 套接字,我的示例大量使用 ostringstream。 在這里使用 stringstreams 而不是只使用字符串的目的和優勢是什么? 在這個例子中,在我看來,我可以很容易地使用常規字符串。 使用這個 ostringstream 不是更笨重嗎?

std::string NetFunctions::GetHostDescription(cost sockaddr_in &sockAddr)
{
    std::ostringstream stream;
    stream << inet_ntoa(sockAddr.sin_addr) << ":" << ntohs(sockAddr.sin_port);
    return stream.str();
}

流是緩沖區。 它們不等於字符數組,例如std::string ,它基本上是一個包含指向字符數組的指針的對象。 流有它們的內在函數、操縱器、狀態和運算符,已經在手。 相比之下,字符串對象會有一些缺陷,例如,輸出數字,缺乏像 endl 這樣方便的函數,麻煩的連接,尤其是。 與函數效果(結果,由函數返回)等。字符串對象只是很麻煩。

現在std::ostringstream是一個舒適且易於設置的緩沖區,用於格式化和准備文本形式(包括數字)的大量數據,以便進一步組合輸出。 此外,與簡單的 ostream 對象cout ,您可能有幾個這樣的緩沖區並根據需要處理它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM