第8章 IO庫

由于不能拷貝IO對(duì)象,因此函數(shù)通常以引用方式傳遞和返回流辉懒。

練習(xí)8.1:編寫函數(shù),接受一個(gè)istream&參數(shù)谍失,返回值類型也是istream&眶俩。此函數(shù)須從給定流中讀取數(shù)據(jù),直到遇到文件結(jié)束標(biāo)識(shí)時(shí)停止快鱼。它將讀取的數(shù)據(jù)打印在標(biāo)準(zhǔn)輸出上颠印,完成這些操作后,在返回流之前抹竹,對(duì)流進(jìn)行復(fù)位线罕,使其處于有效狀態(tài)

#include <iostream>
#include <vector>

using namespace std;

std::istream& read(std::istream &is)
{
    string temp;
    while (is >> temp)
    {
        cout << temp << " ";
    }
    cout << endl;
    is.clear();  //如果沒有clear則在讀入一個(gè)結(jié)束符后不會(huì)執(zhí)行while語句
    return is;
}
int main()
{
    while (read(cin))
    {
        cout << endl << 1;
        break;
    }
    
    return 0;
}

輸出緩沖
緩沖刷新

  • 程序正常結(jié)束,作為main函數(shù)的return操作的一部分窃判,緩沖刷新被執(zhí)行钞楼。
  • 緩沖區(qū)滿的時(shí)候
  • 使用操縱符endl
  • 使用unitbuf設(shè)置流的內(nèi)部狀態(tài)
  • 一個(gè)輸出流被關(guān)聯(lián)到另一個(gè)流

練習(xí)8.4:編寫函數(shù),以讀模式打開一個(gè)文件袄琳,將其內(nèi)容讀入到一個(gè)string的vector中询件,將每一行作為一個(gè)獨(dú)立的元素存于vector中

#include <iostream>
#include <vector>
#include <fstream>

using namespace std;

void get(std::ifstream &is, vector<string> &temp);

int main()
{
    vector<string> a;
    string t;
    ifstream in("1.txt");
    get(in, a);

    for (auto i : a)
        cout << i << endl;

    return 0;
}

void get(std::ifstream &is, vector<string> &temp)
{
    string str;
    if (is)
    {
        while (is >> str) //第一題getline(is, str)
        {
            temp.push_back(str);
        }
    }
    

}

image.png
  • 只可以對(duì)ofstream或fstream對(duì)象設(shè)定out模式。
  • 只可以對(duì)ifstream或fstream對(duì)象設(shè)定in模式
  • 只有當(dāng)out也被設(shè)定是才可設(shè)定trunc模式
  • 只有trunc沒被設(shè)定唆樊,就可以設(shè)定app模式宛琅。在app模式下,即使沒有顯試指定out模式逗旁,文件也總以輸出方式被打開
  • 默認(rèn)情況下嘿辟,即使我們沒有指定trunc,以out模式打開的文件也會(huì)被截?cái)唷?/li>

保留被ofstream打開的文件中已有數(shù)據(jù)的唯一方法是顯式指定app或in模式

練習(xí) 8.9:使用istringstream對(duì)象讀取打印內(nèi)容

#include <iostream>
#include <vector>
#include <string>
#include <sstream>

using namespace std;

std::istream& read(std::istream &is)
{
    string temp;
    while (is >> temp)
    {
        cout << temp << " ";
    }
    cout << endl;
    is.clear();  //如果沒有clear則在讀入一個(gè)結(jié)束符后不會(huì)執(zhí)行while語句
    return is;
}
int main()
{
    string a = "adfdsfgasdf asdf adsadsg ads";
    istringstream record(a);
    read(record);
    return 0;
}


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末片效,一起剝皮案震驚了整個(gè)濱河市红伦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌淀衣,老刑警劉巖昙读,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異舌缤,居然都是意外死亡箕戳,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門国撵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來陵吸,“玉大人,你說我怎么就攤上這事介牙∽吵妫” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵环础,是天一觀的道長囚似。 經(jīng)常有香客問我,道長线得,這世上最難降的妖魔是什么饶唤? 我笑而不...
    開封第一講書人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮贯钩,結(jié)果婚禮上募狂,老公的妹妹穿的比我還像新娘。我一直安慰自己角雷,他們只是感情好祸穷,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著勺三,像睡著了一般雷滚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上吗坚,一...
    開封第一講書人閱讀 49,071評(píng)論 1 285
  • 那天祈远,我揣著相機(jī)與錄音,去河邊找鬼商源。 笑死绊含,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的炊汹。 我是一名探鬼主播躬充,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼讨便!你這毒婦竟也來了充甚?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤霸褒,失蹤者是張志新(化名)和其女友劉穎伴找,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體废菱,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡技矮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年抖誉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片衰倦。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡袒炉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出樊零,到底是詐尸還是另有隱情我磁,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布驻襟,位于F島的核電站夺艰,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏沉衣。R本人自食惡果不足惜郁副,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望豌习。 院中可真熱鬧霞势,春花似錦、人聲如沸斑鸦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽巷屿。三九已至固以,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間嘱巾,已是汗流浹背憨琳。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留旬昭,地道東北人篙螟。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像问拘,于是被迫代替她去往敵國和親遍略。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • #1.IO類IO對(duì)象無拷貝或賦值條件狀態(tài)管理輸出緩沖 #2.文件輸入輸出使用文件流對(duì)象文件模式 #3.string...
    MrDecoder閱讀 341評(píng)論 0 0
  • 8.1 IO類 IO類繼承機(jī)制:ifstream和istringstream繼承自istream骤坐,ofstream...
    咸魚翻身ing閱讀 219評(píng)論 0 0
  • 1 C++緩沖區(qū) 在學(xué)習(xí)標(biāo)準(zhǔn)IO庫之前绪杏,我們先了解C++中緩沖區(qū)的使用。關(guān)于操作系統(tǒng)中緩沖區(qū)的學(xué)習(xí)與理解纽绍,請(qǐng)查看操...
    saviochen閱讀 876評(píng)論 0 4
  • C/C++輸入輸出流總結(jié) 前兩天寫C++實(shí)習(xí)作業(yè)蕾久,突然發(fā)現(xiàn)I/O是那么的陌生,打了好長時(shí)間的文件都沒有打開拌夏,今天終...
    LuckTime閱讀 1,720評(píng)論 0 6
  • [轉(zhuǎn)]C/C++ 文件讀寫操作總結(jié) 在編程的過程中僧著,文件的操作是一個(gè)經(jīng)常用到的問題履因,在C++Builder中,可以...
    天之道天知道閱讀 5,187評(píng)論 0 7