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

C++?使用getline()從文件中讀取一行字符串方法示例

 更新時(shí)間:2023年09月28日 11:14:41   作者:向陽逐夢  
這篇文章主要介紹了C++?使用getline()從文件中讀取一行字符串方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

getline() 方法

getline() 方法從 cin 輸入流緩沖區(qū)中讀取一行字符串。在此基礎(chǔ)上,getline() 方法還適用于讀取指定文件中的一行數(shù)據(jù),本節(jié)就給大家做詳細(xì)的講解。

我們知道,getline() 方法定義在 istream 類中,而 fstream 和 ifstream 類繼承自 istream 類,因此 fstream 和 ifstream 的類對象可以調(diào)用 getline() 成員方法。

文件流對象調(diào)用 getline() 方法

當(dāng)文件流對象調(diào)用 getline() 方法時(shí),該方法的功能就變成了從指定文件中讀取一行字符串。該方法有以下 2 種語法格式:

istream & getline(char* buf, int bufSize);
istream & getline(char* buf, int bufSize, char delim);

其中,第一種語法格式用于從文件輸入流緩沖區(qū)中讀取 bufSize-1 個(gè)字符到 buf,或遇到 \n 為止(哪個(gè)條件先滿足就按哪個(gè)執(zhí)行),該方法會(huì)自動(dòng)在 buf 中讀入數(shù)據(jù)的結(jié)尾添加 '\0'。第二種語法格式和第一種的區(qū)別在于,第一個(gè)版本是讀到 \n 為止,第二個(gè)版本是讀到 delim 字符為止。\n 或 delim 都不會(huì)被讀入 buf,但會(huì)被從文件輸入流緩沖區(qū)中取走。以上 2 種格式中,getline() 方法都會(huì)返回一個(gè)當(dāng)前所作用對象的引用。比如,obj.getline() 會(huì)返回 obj 的引用。

注意,如果文件輸入流中 \n 或 delim 之前的字符個(gè)數(shù)達(dá)到或超過 bufSize,就會(huì)導(dǎo)致讀取失敗。

舉例

    #include <iostream>
    #include <fstream>
    using namespace std;
    int main()
    {
        char c[40];
        //以二進(jìn)制模式打開 in.txt 文件
        ifstream inFile("in.txt", ios::in | ios::binary);
        //判斷文件是否正常打開
        if (!inFile) {
            cout << "error" << endl;
            return 0;
        }
        //從 in.txt 文件中讀取一行字符串,最多不超過 39 個(gè)
        inFile.getline(c, 40);
        cout << c ;
        inFile.close();
        return 0;
    }

假設(shè) in.txt 文件中存有如下字符串:

http://c.biancheng.net/cplus/

則程序執(zhí)行結(jié)果為:

http://c.biancheng.net/cplus/

當(dāng)然,我們也可以使用 getline() 方法的第二種語法格式。例如,更改上面程序中第 15 行代碼為:

inFile.getline(c,40,'c');

這意味著,一旦遇到字符 'c',getline() 方法就會(huì)停止讀取。 再次運(yùn)行程序,其輸出結(jié)果為:

http://

另外,如果想讀取文件中的多行數(shù)據(jù),可以這樣做:

    #include <iostream>
    #include <fstream>
    using namespace std;
    int main()
    {
        char c[40];
        ifstream inFile("in.txt", ios::in | ios::binary);
        if (!inFile) {
            cout << "error" << endl;
            return 0;
        }
        //連續(xù)以行為單位,讀取 in.txt 文件中的數(shù)據(jù)
        while (inFile.getline(c, 40)) {
            cout << c << endl;
        }
        inFile.close();
        return 0;
    }

假設(shè) in.txt 文件中存有如下數(shù)據(jù):

http://c.biancheng.net/cplus/

http://c.biancheng.net/python/

http://c.biancheng.net/java/

則程序執(zhí)行結(jié)果為:

http://c.biancheng.net/cplus/

http://c.biancheng.net/python/

http://c.biancheng.net/java/

以上就是C++ 使用getline()從文件中讀取一行字符串方法示例的詳細(xì)內(nèi)容,更多關(guān)于C++ getline讀取文件字符串的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C++實(shí)現(xiàn)LeetCode(98.驗(yàn)證二叉搜索樹)

    C++實(shí)現(xiàn)LeetCode(98.驗(yàn)證二叉搜索樹)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(98.驗(yàn)證二叉搜索樹),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++中memcpy和memmove的區(qū)別總結(jié)

    C++中memcpy和memmove的區(qū)別總結(jié)

    這篇文章主要介紹了C++中memcpy和memmove的區(qū)別總結(jié),這個(gè)問題經(jīng)常出現(xiàn)在C++的面試題目中,需要的朋友可以參考下
    2014-10-10
  • 深入第K大數(shù)問題以及算法概要的詳解

    深入第K大數(shù)問題以及算法概要的詳解

    本篇文章是對第K大數(shù)問題以及算法概要進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C++超詳細(xì)講解模板的使用

    C++超詳細(xì)講解模板的使用

    這篇文章主要介紹了C++中模板(Template)的詳解及其作用介紹,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • C++寬字符與普通字符的轉(zhuǎn)換實(shí)例詳解

    C++寬字符與普通字符的轉(zhuǎn)換實(shí)例詳解

    這篇文章主要介紹了C++寬字符與普通字符的轉(zhuǎn)換實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • C語言中enum關(guān)鍵字的實(shí)現(xiàn)示例

    C語言中enum關(guān)鍵字的實(shí)現(xiàn)示例

    這篇文章主要介紹了C語言中enum關(guān)鍵字的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • C++設(shè)計(jì)模式之狀態(tài)模式

    C++設(shè)計(jì)模式之狀態(tài)模式

    這篇文章主要介紹了C++設(shè)計(jì)模式之狀態(tài)模式,本文講解了什么是狀態(tài)模式、狀態(tài)模式的使用場合、狀態(tài)模式的實(shí)現(xiàn)代碼等內(nèi)容,需要的朋友可以參考下
    2014-10-10
  • c++指針傳遞導(dǎo)致的重復(fù)釋放問題解決

    c++指針傳遞導(dǎo)致的重復(fù)釋放問題解決

    本文主要介紹了c++指針傳遞導(dǎo)致的重復(fù)釋放問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-05-05
  • C++中預(yù)定義宏的實(shí)現(xiàn)

    C++中預(yù)定義宏的實(shí)現(xiàn)

    C++中有許多預(yù)定義宏,這些宏在程序編譯時(shí)由編譯器自動(dòng)定義,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-06-06
  • c語言左移和右移的示例詳解

    c語言左移和右移的示例詳解

    這篇文章主要介紹了c語言左移和右移的示例詳解,移位操作符的兩個(gè)操作數(shù)必須是整型的。整個(gè)移位表達(dá)式的值的類型也是整型的,而且,左移位操作符與右移位操作符的運(yùn)算并不對稱。
    2020-07-07

最新評論

东城区| 郁南县| 闻喜县| 旺苍县| 武定县| 开鲁县| 武清区| 孙吴县| 水城县| 吉首市| 德格县| 莱阳市| 兴城市| 临江市| 和平区| 南丹县| 比如县| 马龙县| 德昌县| 宜春市| 新河县| 玉门市| 西畴县| 从化市| 永新县| 平和县| 秦皇岛市| 莲花县| 鄢陵县| 长兴县| 额尔古纳市| 乐陵市| 甘南县| 城固县| 迁西县| 太和县| 邢台市| 霍山县| 慈利县| 东丰县| 海伦市|