亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

getline() 方法

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

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

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

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

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

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

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

舉例

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

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

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

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

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

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

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

這意味著,一旦遇到字符 'c',getline() 方法就會停止讀取。 再次運行程序,其輸出結(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;
    }

假設 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()從文件中讀取一行字符串方法示例的詳細內(nèi)容,更多關(guān)于C++ getline讀取文件字符串的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Socket通信原理和實踐

    Socket通信原理和實踐

    本文詳細講解了Socket通信原理和實踐,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • C++Stack棧類模版實例詳解

    C++Stack棧類模版實例詳解

    這篇文章主要為大家詳細介紹了C++Stack棧類模版實例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • 在C++?中慎用setjmp和longjmp解析

    在C++?中慎用setjmp和longjmp解析

    setjmp和longjmp是C語言中用于實現(xiàn)非局部跳轉(zhuǎn)的函數(shù),setjmp和longjmp 是 C 語言中一個很強大的函數(shù),這篇文章主要介紹了在C++?中慎用setjmp和longjmp的相關(guān)知識,需要的朋友可以參考下
    2023-06-06
  • 一文讓你徹底明白C++中的const

    一文讓你徹底明白C++中的const

    這篇文章主要給大家介紹了關(guān)于C++中const的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • C語言實現(xiàn)學生消費管理系統(tǒng)

    C語言實現(xiàn)學生消費管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)學生消費管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • C語言數(shù)組與地址、數(shù)組名到底是什么詳解

    C語言數(shù)組與地址、數(shù)組名到底是什么詳解

    在寫代碼的時候,我們經(jīng)常用到數(shù)組,那么有沒有想過數(shù)組名是什么呢?這篇文章主要給大家介紹了關(guān)于C語言數(shù)組與地址、數(shù)組名到底是什么的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-06-06
  • 詳解C語言中const關(guān)鍵字的用法

    詳解C語言中const關(guān)鍵字的用法

    這篇文章主要對C語言中const關(guān)鍵字的用法進行了詳細的分析介紹,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2015-08-08
  • C++11中多線程編程-std::async的深入講解

    C++11中多線程編程-std::async的深入講解

    這篇文章主要給大家介紹了關(guān)于C++11中多線程編程-std::async的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • C++this指針詳情

    C++this指針詳情

    這篇文章主要介紹了C++this指針詳情,在 C++ 中,每一個對象都能通過 this 指針來訪問自己的地址。this 指針是所有成員函數(shù)的隱含參數(shù)。因此,在成員函數(shù)內(nèi)部,它可以用來指向調(diào)用對象,下面我們來了解更多詳細內(nèi)容吧
    2022-01-01
  • C++中delete和delete[]的區(qū)別說明

    C++中delete和delete[]的區(qū)別說明

    一直對C++中的delete和delete[]的區(qū)別不甚了解,今天遇到了,上網(wǎng)查了一下,得出了結(jié)論。希望本文可以對你有所幫助
    2013-02-02

最新評論