getline怎么在c++中使用-創(chuàng)新互聯(lián)

本篇文章為大家展示了getline怎么在c++中使用,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的壺關(guān)網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

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ù)限制修改的代碼:

getline怎么在c++中使用

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

getline怎么在c++中使用

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

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

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

結(jié)果:

getline怎么在c++中使用

第二點,代碼如下

// 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ù)組后就不再運行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;
}

getline怎么在c++中使用

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;
}

上述內(nèi)容就是getline怎么在c++中使用,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站muchs.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

本文題目:getline怎么在c++中使用-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://muchs.cn/article48/ddhdhp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、小程序開發(fā)、標(biāo)簽優(yōu)化、域名注冊網(wǎng)站營銷、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站