最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++ stringstream類用法詳解

 更新時間:2021年08月13日 15:07:26   作者:liitdar  
這篇文章主要介紹了C++ stringstream類用法詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下

本文主要介紹 C++ 中 stringstream 類的常見用法。

1 概述

<sstream> 定義了三個類:istringstream、ostringstream 和 stringstream,分別用來進行流的輸入、輸出和輸入輸出操作。本文以 stringstream 為主,介紹流的輸入和輸出操作。

<sstream> 主要用來進行數(shù)據(jù)類型轉(zhuǎn)換,由于 <sstream> 使用 string 對象來代替字符數(shù)組(snprintf方式),就避免緩沖區(qū)溢出的危險;而且,因為傳入?yún)?shù)和目標對象的類型會被自動推導出來,所以不存在錯誤的格式化符的問題。簡單說,相比c庫的數(shù)據(jù)類型轉(zhuǎn)換而言,<sstream> 更加安全、自動和直接。

2 代碼示例

2.1 數(shù)據(jù)類型轉(zhuǎn)換

這里展示一個代碼示例,該示例介紹了將 int 類型轉(zhuǎn)換為 string 類型的過程。示例代碼(stringstream_test1.cpp)如下:

#include <string>
#include <sstream>
#include <iostream>
#include <stdio.h>
 
using namespace std;
 
int main()
{
    stringstream sstream;
    string strResult;
    int nValue = 1000;
 
    // 將int類型的值放入輸入流中
    sstream << nValue;
    // 從sstream中抽取前面插入的int類型的值,賦給string類型
    sstream >> strResult;
 
    cout << "[cout]strResult is: " << strResult << endl;
    printf("[printf]strResult is: %s\n", strResult.c_str());
 
    return 0;
}

編譯并執(zhí)行上述代碼,結(jié)果如下:

2.2 多個字符串拼接

本示例介紹在 stringstream 中存放多個字符串,實現(xiàn)多個字符串拼接的目的(其實完全可以使用 string 類實現(xiàn)),同時,介紹 stringstream 的清空方法。

示例代碼(stringstream_test2.cpp)如下:

#include <string>
#include <sstream>
#include <iostream>
 
using namespace std;
 
int main()
{
    stringstream sstream;
 
    // 將多個字符串放入 sstream 中
    sstream << "first" << " " << "string,";
    sstream << " second string";
    cout << "strResult is: " << sstream.str() << endl;
 
    // 清空 sstream
    sstream.str("");
    sstream << "third string";
    cout << "After clear, strResult is: " << sstream.str() << endl;
 
    return 0;
}

編譯并執(zhí)行上述代碼,結(jié)果如下:

從上述代碼執(zhí)行結(jié)果能夠知道:

  • 可以使用 str() 方法,將 stringstream 類型轉(zhuǎn)換為 string 類型;
  • 可以將多個字符串放入 stringstream 中,實現(xiàn)字符串的拼接目的;
  • 如果想清空 stringstream,必須使用 sstream.str(""); 方式;clear() 方法適用于進行多次數(shù)據(jù)類型轉(zhuǎn)換的場景。詳見示例2.3。

2.3 stringstream的清空

清空 stringstream 有兩種方法:clear() 方法以及 str("") 方法,這兩種方法有不同的使用場景。str("") 方法的使用場景,在上面的示例中已經(jīng)介紹了,這里介紹 clear() 方法的使用場景。示例代碼(stringstream_test3.cpp)如下:

#include <sstream>
#include <iostream>
 
using namespace std;
 
int main()
{
    stringstream sstream;
    int first, second;
 
    // 插入字符串
    sstream << "456";
    // 轉(zhuǎn)換為int類型
    sstream >> first;
    cout << first << endl;
 
    // 在進行多次類型轉(zhuǎn)換前,必須先運行clear()
    sstream.clear();
 
    // 插入bool值
    sstream << true;
    // 轉(zhuǎn)換為int類型
    sstream >> second;
    cout << second << endl;
 
    return 0;
}

編譯并執(zhí)行上述代碼,結(jié)果如下:

注意:在本示例涉及的場景下(多次數(shù)據(jù)類型轉(zhuǎn)換),必須使用 clear() 方法清空 stringstream,不使用 clear() 方法或使用 str("") 方法,都不能得到數(shù)據(jù)類型轉(zhuǎn)換的正確結(jié)果。下圖分別是未使用 clear() 方法、使用 str("") 方法時的運行結(jié)果:

到此這篇關于C++ stringstream類用法詳解的文章就介紹到這了,更多相關C++ stringstream類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C語言實現(xiàn)簡易三子棋

    C語言實現(xiàn)簡易三子棋

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡易三子棋,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C++如何調(diào)用matlab函數(shù)

    C++如何調(diào)用matlab函數(shù)

    這篇文章主要介紹了C++如何調(diào)用matlab函數(shù)的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-11-11
  • 解析c++ 中智能指針引用計數(shù)為什么不是0原理

    解析c++ 中智能指針引用計數(shù)為什么不是0原理

    這篇文章主要為大家介紹了C語言中智能指針引用計數(shù)為什么不是0原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • c語言輕松實現(xiàn)猜數(shù)字小游戲

    c語言輕松實現(xiàn)猜數(shù)字小游戲

    猜數(shù)字是興起于英國的益智類小游戲,起源于20世紀中期,一般由兩個人或多人玩,也可以由一個人和電腦玩。游戲規(guī)則為一方出數(shù)字,一方猜,今天我們來用C實現(xiàn)這個游戲案例
    2022-04-04
  • c++ chrono 獲取當前時間的實現(xiàn)代碼

    c++ chrono 獲取當前時間的實現(xiàn)代碼

    這篇文章主要介紹了c++ chrono 獲取當前時間的實現(xiàn)代碼,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • 詳解C++中static的用法

    詳解C++中static的用法

    這篇文章主要介紹了c++中static的用法詳解,C 語言的 static 關鍵字有三種用途,具體內(nèi)容詳情大家跟隨腳本之家小編一起學習吧
    2018-05-05
  • 你真的理解C語言qsort函數(shù)嗎?帶你深度剖析qsort函數(shù)

    你真的理解C語言qsort函數(shù)嗎?帶你深度剖析qsort函數(shù)

    這篇文章主要介紹了你真的理解C語言qsort函數(shù)嗎?帶你深度剖析qsort函數(shù),本篇將引入一個庫函數(shù)來實現(xiàn)我們希望的順序,結(jié)合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • C語言實現(xiàn)簡單電子通訊錄

    C語言實現(xiàn)簡單電子通訊錄

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡單電子通訊錄,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • C語言實現(xiàn)飛機售票系統(tǒng)

    C語言實現(xiàn)飛機售票系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)飛機售票系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 詳解Qt如何加載libxl庫

    詳解Qt如何加載libxl庫

    這篇文章主要介紹了詳解Qt如何加載libxl庫,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03

最新評論

精河县| 巴彦县| 鲜城| 江城| 磐安县| 湖北省| 盈江县| 东丽区| 盖州市| 佛冈县| 新津县| 青州市| 崇义县| 临武县| 务川| 龙海市| 和静县| 勐海县| 石屏县| 略阳县| 剑河县| 舞阳县| 金门县| 南宁市| 万全县| 南昌县| 宣武区| 凌云县| 镇赉县| 甘孜县| 新泰市| 包头市| 文山县| 石泉县| 敦煌市| 云和县| 沁阳市| 定边县| 桑日县| 洱源县| 北京市|