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

c++中的兩種getline用法詳解

 更新時間:2020年02月14日 10:57:36   作者:IT_xiaolaoshu  
c++中有2種getline函數(shù),一種在頭文件 <istream> 中,是istream類的成員函數(shù);另一種是在頭文件 <string> 中,是普通函數(shù)。這篇文章主要介紹了c++中的兩種getline用法,需要的朋友可以參考下

getline是C++標(biāo)準(zhǔn)庫函數(shù);但不是C標(biāo)準(zhǔn)庫函數(shù),而是POSIX(IEEE Std 1003.1-2008版本及以上)所定義的標(biāo)準(zhǔn)庫函數(shù)(在POSIX IEEE Std 1003.1-2008標(biāo)準(zhǔn)出來之前,則只是GNU擴(kuò)展庫里的函數(shù))。getline會生成一個包含一串從輸入流讀入的字符的字符串,直到以下情況發(fā)生會導(dǎo)致生成的此字符串結(jié)束:1)到文件結(jié)束,2)遇到函數(shù)的定界符,3)輸入達(dá)到最大限度。

getline()函數(shù)是一個比較常見的函數(shù)。根據(jù)名字直接"望文->生義",就知道這個函數(shù)是來完成讀入一行數(shù)據(jù)。

下面就對C++ -- getline()函數(shù)的用法說明,以及getline()函數(shù)作為while條件的問題,總結(jié)一下:

在C++中本質(zhì)上有兩種getline函數(shù),(稱為第一種)一種在頭文件<istream>中,是istream類的成員函數(shù)。

好了,看正文,給大家詳細(xì)介紹。

功能:讀入一行數(shù)據(jù)。

c++中有2種getline函數(shù),一種在頭文件 <istream> 中,是istream類的成員函數(shù);另一種是在頭文件 <string> 中,是普通函數(shù)。

1.在頭文件 <istream> 的getline函數(shù)兩種重載形式:

istream& getline (char* s, streamsize n );//讀取最多n個字符保存在s對應(yīng)的數(shù)組中,即使大小不夠n,
istream& getline (char* s, streamsize n, char delim ); //讀取最多n個字符保存在s對應(yīng)的數(shù)組中,遇到delim,或者讀完一行,或字?jǐn)?shù)達(dá)到限制則終止

特別說明: 最多讀取n個字符中結(jié)束字符算一位。

例子代碼:

// istream::getline example
#include <iostream>  // std::cin, std::cout
int main () {
 char name[256], title[256];
 std::cout << "Please, enter your name: ";
 std::cin.getline (name,256);
 std::cout << "Please, enter your favourite movie: ";
 std::cin.getline (title,256);
 std::cout << name << "'s favourite movie is " << title;
 return 0;
}

通過字?jǐn)?shù)限制修改的代碼:

通過設(shè)置終止字符使用getline函數(shù)的代碼:

關(guān)于這個函數(shù)的2點(diǎn)疑問:

第一點(diǎn),當(dāng)定義一個小的數(shù)組,輸入的時候要求輸入的長度超出數(shù)組長度,輸出的時候會輸出全部的值。

#include<iostream>
int main()
{
	char name[5];
	std::cin.getline(name,25);
	std::cout<<name<<std::endl;
	return 0;
} 

結(jié)果:

第二點(diǎn),代碼如下

// istream::getline example
#include <iostream>  // std::cin, std::cout
int main () {
 char name[6], title[256];
 std::cout << "Please, enter your name: ";
 std::cin.getline (name,4);
 //代碼通過字?jǐn)?shù)限制存入數(shù)組后就不再運(yùn)行11-12行代碼,而是直接16行 
 std::cout << "Please, enter your favourite movie: ";
 std::cin.getline (title,256,'#');
 std::cout<<std::endl;	
 std::cout << name << " " << title;
 return 0;
}

2.在頭文件<string>中的getline函數(shù)

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

(2) 

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

說明:

  • is:表示一個輸入流,例如 cin。
  • str:用來存儲輸入流中的信息
  • delim:自定義結(jié)束字符,默認(rèn)是 '\n '

例子代碼:

#include<iostream>
#include<string>
int main()
{
	std::string name; //這里定義的是string類型,而不是char
	std::getline(std::cin,name);
	std::cout<<name<<std::endl;
	
	return 0;
} 

getline在while語句中作為判定條件:

不設(shè)置終止符

#include<iostream>
#include<string>
using namespace std;
int main()
{
	string name;
	while(getline(cin,name))
	{
		cout<<name<<endl;
	}
	return 0;
} 

使用終止符的while語句(當(dāng)輸入 ' \n ' 也不受影響)

#include<iostream>
#include<string>
using namespace std;
int main()
{
	string name;
	while(getline(cin,name,'#'))
	{
		cout<<"輸出結(jié)果:"<<endl;
		cout<<name<<endl;
	}
	
	
	return 0;
} 

結(jié)果:

參考鏈接:

1.istream中的getline

2.string頭文件中的getline

總結(jié)

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

相關(guān)文章

  • C語言的可變參數(shù)函數(shù)實(shí)現(xiàn)詳解

    C語言的可變參數(shù)函數(shù)實(shí)現(xiàn)詳解

    某些情況下我們希望函數(shù)的參數(shù)個數(shù)可以根據(jù)需要確定,因此c語言引入可變參數(shù)函數(shù)。典型的可變參數(shù)函數(shù)的例子有printf()、scanf()等,下面我就開始講解
    2021-08-08
  • C++取得本機(jī)IP的方法

    C++取得本機(jī)IP的方法

    這篇文章主要介紹了C++取得本機(jī)IP的方法,代碼簡單功能實(shí)用,具有不錯的借鑒參考價值,需要的朋友可以參考下
    2014-10-10
  • C 語言基礎(chǔ)教程(我的C之旅開始了)[六]

    C 語言基礎(chǔ)教程(我的C之旅開始了)[六]

    C 語言基礎(chǔ)教程(我的C之旅開始了)[六]...
    2007-02-02
  • C語言實(shí)現(xiàn)一個閃爍的圣誕樹

    C語言實(shí)現(xiàn)一個閃爍的圣誕樹

    本文詳細(xì)講解了C語言實(shí)現(xiàn)一個閃爍的圣誕樹,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • C語言中組成不重復(fù)的三位數(shù)問題

    C語言中組成不重復(fù)的三位數(shù)問題

    這篇文章主要介紹了C語言中組成不重復(fù)的三位數(shù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 詳解VS2019+OpenCV-4-1-0+OpenCV-contrib-4-1-0

    詳解VS2019+OpenCV-4-1-0+OpenCV-contrib-4-1-0

    這篇文章主要介紹了詳解VS2019+OpenCV-4-1-0+OpenCV-contrib-4-1-0,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • C語言 條件判斷詳細(xì)介紹

    C語言 條件判斷詳細(xì)介紹

    本文主要講解C語言 條件判斷,這里整理了相關(guān)資料,詳細(xì)說明了判斷語句知識要點(diǎn),希望能幫助學(xué)習(xí)C語言的同學(xué)
    2016-08-08
  • Qt數(shù)據(jù)庫應(yīng)用之實(shí)現(xiàn)數(shù)據(jù)分組導(dǎo)出

    Qt數(shù)據(jù)庫應(yīng)用之實(shí)現(xiàn)數(shù)據(jù)分組導(dǎo)出

    這篇文章主要為大家詳細(xì)介紹了如何利用Qt實(shí)現(xiàn)數(shù)據(jù)庫數(shù)據(jù)分組導(dǎo)出,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)或工作有一定參考價值,需要的可以了解一下
    2022-06-06
  • C語言算法積累加tag的循環(huán)隊(duì)列

    C語言算法積累加tag的循環(huán)隊(duì)列

    這篇文章主要為大家介紹了C語言算法積累加tag的循環(huán)隊(duì)列的解題思路,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • C++線性時間的排序算法分析

    C++線性時間的排序算法分析

    這篇文章主要介紹了C++線性時間的排序算法分析,是非常經(jīng)典的非比較排序算法,對于C++程序員有很大的借鑒價值,需要的朋友可以參考下
    2014-08-08

最新評論