C stringstream 介紹與示例

2022-06-30 06:00:09 字數 1785 閱讀 4724

c++引入了ostringstream、istringstream、stringstream這三個類,要使用他們建立物件就必須包含標頭檔案,通常是用來做資料轉換的。

istringstream類是從istream和stringstreambase派生而來,ostringstream是從ostream和 stringstreambase派生而來, stringstream則是從iostream類和stringstreambase派生而來。

他們的繼承關係如下圖所示:

示例一:istringstream的使用

1 #include 2 #include 3

4using

namespace

std;56

intmain()

7

輸出:

1

56.7

156.7

說明:上例中,構造字串流的時候,空格會成為字串引數的內部分界,例子中對a,b物件的輸入"賦值"操作證明了這一點,字串的空格成為了整型資料與浮點型資料的分解點,利用分界獲取的方法我們事實上完成了字串到整型物件與浮點型物件的拆分轉換過程。str()成員函式的使用可以讓istringstream物件返回乙個string字串。

示例二:ostringstream的使用

1 #include2 #include3 #include45

using

namespace

std;67

intmain()

輸出:

defg
說明:通過put()或者左移操作符可以不斷向ostr插入單個字元或者是字串,通過str()函式返回增長過後的完整字串資料,但值 得注意的一點是,當構造的時候物件內已經存在字串資料的時候,那麼增長操作的時候不會從結尾開始增加,而是修改原有資料,超出的部分增長。

示例三:stringstream的使用

1 #include2 #include3 #include

4using

namespace

std;56

intmain()

輸出:

defg

d

示例四:使用stringstream物件簡化型別轉換

1 #include2 #include3 #include

4using

namespace

std;

56 template

7void to_string(string & result, const t &t)813

14 template

15 out_type convert(const in_value &t)

1623

24int

main()

25

輸出:

100

abcde

10.5

d 12.34

salary

100

說明:函式模板to_string():可以輕鬆地將多種數值轉換成字串。

函式模板convert():定義乙個通用的轉換模板,用於任意型別之間的轉換。convert()含有兩個模板引數out_type和in_value,功能是將in_value值轉換成out_type型別。

如果想通過使用同一stringstream物件實現多種型別的轉換,請注意在每一次轉換之後都必須呼叫clear()成員函式。

C stringstream的簡單介紹以及使用

在c語言中,如果想要將乙個整形變數的資料轉化為字串格式可以使用以下兩種方式 1.itoa 函式。2sprint 函式。但是兩個函式在轉化時,都得需要先給出儲存結果的空間,那空間要給多大呢,就不太好界定,而且轉化格式不匹配時,可能還會得到錯誤的結果甚至程式崩潰。int main 在c 中,可以使用st...

C stringstream使用詳解

注意事項 參考文獻 該類包含在標頭檔案中,另外該標頭檔案中還定義了istringstream ostringstream,分別用來進行流的輸入 輸出。除此以外,每個類都有乙個對應的寬字符集版本。void main void main string int wstring void main stri...

C stringstream類用法詳解

本文主要介紹 c 中 stringstream 類的常見用法。定義了三個類 istringstream ostringstream 和 stringstream,分別用來進行流的輸入 輸出和輸入輸出操作。本文以 stringstream 為主,介紹流的輸入和輸出操作。主要用來進行資料型別轉換,由於 ...