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

C++ cin.getline及getline()用法詳解

 更新時間:2020年02月14日 11:11:16   作者:郭怡柔  
這篇文章主要介紹了C++ cin.getline用法及C++ getline()的兩種用法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下

下面先看下C++ cin.getline用法,具體內(nèi)容如下所示:

使用 C++ 字符數(shù)組與使用 string 對象還有另一種不同的方式,就是在處理它們時必須使用不同的函數(shù)集。例如,要讀取一行輸入,必須使用 cin.getline 而不是 getline 函數(shù)。這兩個的名字看起來很像,但它們是兩個不同的函數(shù),不可互換。

與 getline 一樣,cin.getline 允許讀取包含空格的字符串。它將繼續(xù)讀取,直到它讀取至最大指定的字符數(shù),或直到按下了回車鍵。以下是其用法示例:

cin.getline(sentence, 20);

getline 函數(shù)使用兩個用逗號分隔的參數(shù)。第一個參數(shù)是要存儲字符串的數(shù)組的名稱。第二個參數(shù)是數(shù)組的大小。當 cin.getline 語句執(zhí)行時,cin 讀取的字符數(shù)將比該數(shù)字少一個,為 null 終止符留出空間。這樣就不需要使用 setw 操作符或 width 函數(shù)。以上語句最多可讀取 19 個字符,null 終止符將自動放在數(shù)組最后一個字符的后面。

下面的程序演示了 getline 函數(shù)的用法,它最多可以讀取 80 個字符:

// This program demonstrates cinT s getline function
// to read a line of text into a C-string.
#include <iostream>、
using namespace std;
int main()
{
  const int SIZE = 81;
  char sentence[SIZE];
  cout << "Enter a sentence: ";
  cin.getline (sentence, SIZE);
  cout << "You entered " << sentence << endl;
  return 0;
}

程序輸出結(jié)果:

Enter a sentence: To be, or not to be, that is the question.
You entered To be, or not to be, that is the question.

補充:C++ getline()的兩種用法

getline():用于讀入一整行的數(shù)據(jù)。在C++中,有兩種getline函數(shù)。第一種定義在頭文件<istream>中,是istream類的成員函數(shù);第二種定義在頭文件<string>中,是普通函數(shù)。

第一種: 在<istream>中的getline()函數(shù)有兩種重載形式:

istream& getline (char* s, streamsize n );
istream& getline (char* s, streamsize n, char delim );

作用是: 從istream中讀取至多n個字符(包含結(jié)束標記符)保存在s對應(yīng)的數(shù)組中。即使還沒讀夠n個字符,如果遇到delim標識符或字數(shù)達到限制,則讀取終止。delim標識符會被讀取,但是不會被保存進s對應(yīng)的數(shù)組中。注意,delim標識符在指定最大字符數(shù)n的時候才有效。

#include <iostream>
using namespace std;

int main()
{
 char name[256], wolds[256];
 cout<<"Input your name: ";
 cin.getline(name,256);
 cout<<name<<endl;
 cout<<"Input your wolds: ";
 cin.getline(wolds,256,',');
 cout<<wolds<<endl;
 cin.getline(wolds,256,',');
 cout<<wolds<<endl;
 return 0;
}

輸入

Kevin
Hi,Kevin,morning

輸出

Kevin
Hi
Kevin

第二種: 在<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中。

is:表示一個輸入流,例如cin。

str:string類型的引用,用來存儲輸入流中的流信息。

delim:char類型的變量,所設(shè)置的截斷字符;在不自定義設(shè)置的情況下,遇到'\n',則終止輸入。

#include<iostream>
#include<string>
using namespace std;
int main(){
 string str;
 getline(cin, str, 'A');
 cout<<"The string we have gotten is :"<<str<<'.'<<endl;
 getline(cin, str, 'B');
 cout<<"The string we have gotten is :"<<str<<'.'<<endl;
return 0;}

輸入

i_am_A_student_from_Beijing

輸出

The string we have gotten is :i_am_.
The string we have gotten is :_student_from_.

總結(jié)

以上所述是小編給大家介紹的C++ cin.getline及getline()用法詳解,希望對大家有所幫助,也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • C語言深入探究sizeof與整型數(shù)據(jù)存儲及數(shù)據(jù)類型取值范圍

    C語言深入探究sizeof與整型數(shù)據(jù)存儲及數(shù)據(jù)類型取值范圍

    在main函數(shù)中,sizeof是可以正常工作的,但是在自定義函數(shù)中就不可以了。所以本文將為大家詳細講解一下關(guān)鍵字sizeof、整型數(shù)據(jù)存儲深入、數(shù)據(jù)類型取值范圍深入
    2022-07-07
  • C++ LibCurl實現(xiàn)Web指紋識別功能

    C++ LibCurl實現(xiàn)Web指紋識別功能

    Web指紋識別是一種通過分析Web應(yīng)用程序的特征和元數(shù)據(jù),以確定應(yīng)用程序所使用的技術(shù)棧和配置的技術(shù),本文將通過C++中LibCurl庫實現(xiàn)簡單是指紋識別功能,感興趣的可以了解下
    2023-11-11
  • C++自定義API函數(shù)實現(xiàn)大數(shù)相乘算法

    C++自定義API函數(shù)實現(xiàn)大數(shù)相乘算法

    這篇文章主要為大家詳細介紹了C++自定義API函數(shù)實現(xiàn)大數(shù)相乘算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • c語言函數(shù)棧幀的創(chuàng)建和銷毀過程詳解

    c語言函數(shù)棧幀的創(chuàng)建和銷毀過程詳解

    我們知道c語言中函數(shù)都是被調(diào)用的,main函數(shù)里面能調(diào)用其他函數(shù),其實main函數(shù)也是被別的函數(shù)調(diào)用的,下面通過本文給大家分享c語言函數(shù)棧幀的創(chuàng)建和銷毀過程,一起看看吧
    2021-08-08
  • C++ 11新特性之大括號初始化詳解

    C++ 11新特性之大括號初始化詳解

    這篇文章主要介紹了C++ 11新特性之大括號初始化的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • C++實現(xiàn)多人聊天室

    C++實現(xiàn)多人聊天室

    這篇文章主要為大家詳細介紹了C++實現(xiàn)多人聊天室,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • C++中的long long與__int64

    C++中的long long與__int64

    這篇文章主要介紹C++中的long long與__int64,在C++ Primer當中提到的64位的int只有l(wèi)ong long,但是在實際各種各樣的C++編譯器當中,64位的int一直有兩種標準.一種是long long,還有一種是__int64,非主流的VC甚至還支持_int64,下面文章將介紹具體內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • 通過C語言判斷字符串是否為點分十進制的IP地址

    通過C語言判斷字符串是否為點分十進制的IP地址

    這篇文章主要為大家詳細介紹了如何通過C語言判斷字符串是否為點分十進制的IP地址,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2023-03-03
  • 淺談c++如何實現(xiàn)并發(fā)中的Barrier

    淺談c++如何實現(xiàn)并發(fā)中的Barrier

    這篇文章主要介紹了淺談c++如何實現(xiàn)并發(fā)中的Barrier,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • matlab鳥群算法求解車間調(diào)度問題詳解及實現(xiàn)源碼

    matlab鳥群算法求解車間調(diào)度問題詳解及實現(xiàn)源碼

    這篇文章主要為大家介紹了matlab鳥群算法求解車間調(diào)度的問題分析及實現(xiàn)源碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-02-02

最新評論