欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++ string類getline()用法實例詳解

 更新時間:2024年03月13日 11:20:06   作者:Alkali!  
C++ getline()是一種標準庫函數(shù),用于從輸入流中讀取字符串或行,它是<string>標頭的一部分,本文介紹C++ string類getline()用法詳解,感興趣的朋友一起看看吧

有時候我們希望在最終的字符串中保留輸入時的空白符,這時候應該用getline函數(shù)來替代原來的>>運算符。( cin 不能輸入包含嵌入空格的字符串
getline函數(shù)的參數(shù)是一個輸入流和一個string對象,原型是:getline(cin,string對象),函數(shù)從給定的輸入流中讀入內容,直到遇到換行符為止,但是此時的換行符要被讀入,然后把所讀入的內容存到string對象中,但此時不存入最后那個換行符。
<string>中的getline函數(shù)有四種重載形式:

istream& getline (istream&  is, string& str, char delim);
istream& getline (istream&& is, string& str, char delim);
istream& getline (istream&  is, string& str);
istream& getline (istream&& is, string& str);

讀取的istream是作為參數(shù)is傳進函數(shù)的,讀取的字符串保存在string類型的str中。

函數(shù)的變量:

  • is :表示一個輸入流,例如 cin。
  • str :string類型的引用,用來存儲輸入流中的流信息。
  • delim :char類型的變量,所設置的截斷字符在不自定義設置的情況下,遇到’\n’,則終止輸入。

getline只要遇到換行符就停止讀入并且返回string對象,哪怕一開始輸入就是換行符也是如此,只不過會返回一個空的string對象。和輸入運算符一樣,getline也會返回它的流參數(shù),所以可以用getline的結果作為條件。

//參考代碼
#include<iostream>
#include<string>
using namespace std;
int main()
{
    string line;//每次讀入一整行,直到遇到換行符結束讀入
    while (getline(cin,line))
        if (!line.empty())
            cout << line << endl;
    system("pause");
    return 0;
}

分析一下while(getline(cin,line))

(注意:這里默認回車符停止讀入,按Ctrl+Z(Windows)(Ctrl+D(Linux))即可退出循環(huán)。)

這個語句中,while判斷語句的真實判斷對象是cin的狀態(tài),也就是判斷當前是否存在有效的輸入流。

而輸入流是對象,判斷的是流返回的狀態(tài)。所以正常的情況下,你怎么輸入都是跳不出它的循環(huán)。

在這之中可能會用些人誤以為while判斷語句的判斷對象是line(也就是line是否為空),想通過回車來跳出循環(huán),卻發(fā)現(xiàn)不能跳出循環(huán)。

而回車和設置的終止符都是終止getline()函數(shù)的讀取操作的。但是while判斷語句判斷的是getline()函數(shù)的輸入流是否有效。

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

相關文章

  • Qt編寫秒表功能

    Qt編寫秒表功能

    這篇文章主要為大家詳細介紹了Qt編寫秒表功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 深入理解C++中public、protected及private用法

    深入理解C++中public、protected及private用法

    這篇文章主要介紹了C++中public、protected及private用法,對于C++面向對象程序設計來說是非常重要的概念,需要的朋友可以參考下
    2014-08-08
  • C/C++程序鏈接與反匯編工具objdump的使用介紹

    C/C++程序鏈接與反匯編工具objdump的使用介紹

    這篇文章主要介紹了C/C++程序鏈接與反匯編工具objdump的使用,程序構建過程的第二個階段就是鏈接,鏈接過程輸入的是目標文件的集合。每個目標文件可以被看作單個源代碼文件的二進制存儲版本
    2023-02-02
  • linux c 獲取本機公網IP的實現(xiàn)方法

    linux c 獲取本機公網IP的實現(xiàn)方法

    本篇文章是對在linux中使用c語言獲取本機公網IP的方法進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C++利用socket傳輸大文件的實現(xiàn)代碼

    C++利用socket傳輸大文件的實現(xiàn)代碼

    這篇文章主要為大家詳細介紹了C/C++如何使用socket傳輸大文件的實現(xiàn)代碼,文中的示例代碼講解詳細,具有一定的學習價值,感興趣的小伙伴可以了解一下
    2023-10-10
  • 使用WindowsAPI獲取錄音音頻的方法

    使用WindowsAPI獲取錄音音頻的方法

    這篇文章主要介紹了使用WindowsAPI獲取錄音音頻的方法,非常實用的功能,需要的朋友可以參考下
    2014-08-08
  • C++ 標準模板類詳解

    C++ 標準模板類詳解

    今天小編就為大家分享一篇關于C++標準模板類的介紹與使用講解,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2021-09-09
  • C++學習之如何進行內存資源管理

    C++學習之如何進行內存資源管理

    與java、golang等自帶垃圾回收機制的語言不同,C++并不會自動回收內存,這往往會導致內存泄漏和內存溢出等問題,所以掌握C++中的內存管理技巧和工具是非常重要的,本文就來和大家詳細講講
    2023-05-05
  • C語言單鏈表常見操作匯總

    C語言單鏈表常見操作匯總

    這篇文章主要介紹了C語言單鏈表常見操作,需要的朋友可以參考下
    2014-07-07
  • C/C++中輸入多組數(shù)據的方法

    C/C++中輸入多組數(shù)據的方法

    這篇文章主要為大家詳細介紹了C/C++中輸入多組數(shù)據的三種方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08

最新評論