【C++ Primer | 08】IO库
生活随笔
收集整理的這篇文章主要介紹了
【C++ Primer | 08】IO库
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、istringstream類
描述:從流中提取數據,支持?>>?操作
這里字符串可以包括多個單詞,單詞之間使用空格分開
#include <iostream> #include <sstream> using namespace std; int main() {istringstream istr("1 56.7");cout << istr.str() << endl;//直接輸出字符串的數據 "1 56.7" string str = istr.str();//函數str()返回一個字符串 cout << str << endl;int n;double d;//以空格為界,把istringstream中數據取出,應進行類型轉換 istr >> n;//第一個數為整型數據,輸出1 istr >> d;//第二個數位浮點數,輸出56.7 cout << n << endl;cout << d << endl;d = 0;n = 0; istr >> d;//istringstream第一個數要自動變成浮點型,輸出仍為1 istr >> n;//istringstream第二個數要自動變成整型,有數字的階段,輸出為56 cout << d << endl;cout << n << endl;return 1; }輸出結果:?
?
?
二、ostringstream類
描述:把其他類型的數據寫入流(往流中寫入數據),支持 << 操作
#include <sstream> #include <string> #include <iostream> using namespace std;int main() {ostringstream ostr1;ostringstream ostr2("abc");ostr1 << "ostr1" << 2012 << endl; // 格式化,此處endl也將格式化進ostr1中cout << ostr1.str();long curPos = ostr2.tellp(); //返回當前插入的索引位置(即put pointer的值),從0開始 cout << "curPos = " << curPos << endl;ostr2.seekp(2); // 手動設置put pointer的值ostr2.put('g'); // 在put pointer的位置上寫入'g',并將put pointer指向下一個字符位置cout << ostr2.str() << endl;/*----------------------------------------------------------------------------重復使用同一個ostringstream對象時,建議:1:調用clear()清除當前錯誤控制狀態,其原型為 void clear (iostate state=goodbit);2:調用str("")將緩沖區清零,清除臟數據----------------------------------------------------------------------------*/ostr2.clear();ostr2.str("");cout << ostr2.str() << endl;ostr2.str("_def");cout << ostr2.str() << endl;ostr2 << "gggghh"; // 覆蓋原有的數據,并自動增加緩沖區cout << ostr2.str() << endl; }輸出結果:
相關練習:
1.?151. 翻轉字符串里的單詞
參考資料
1.?istringstream、ostringstream、stringstream 類介紹
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的【C++ Primer | 08】IO库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【第15章】虚函数
- 下一篇: 【Leetcode | 01】Backt