C++中g(shù)etline()的用法詳解
getline()用法
getline是C++標(biāo)準(zhǔn)庫(kù)函數(shù);它有兩種形式,一種是頭文件< istream >中輸入流成員函數(shù);一種在頭文件< string >中普通函數(shù);
它遇到以下情況發(fā)生會(huì)導(dǎo)致生成的本字符串結(jié)束:
(1)到文件結(jié)束,(2)遇到函數(shù)的定界符,(3)輸入達(dá)到最大限度。
輸入流成員函數(shù)getline()
函數(shù)語(yǔ)法結(jié)構(gòu):
在< istream >中的getline()函數(shù)有兩種重載形式:
istream& getline (char* s, streamsize n ); istream& getline (char* s, streamsize n, char delim );
作用是: 從istream中讀取至多n個(gè)字符(包含結(jié)束標(biāo)記符)保存在s對(duì)應(yīng)的數(shù)組中。即使還沒(méi)讀夠n個(gè)字符,
如果遇到delim 或 字?jǐn)?shù)達(dá)到限制,則讀取終止,delim都不會(huì)被保存進(jìn)s對(duì)應(yīng)的數(shù)組中。
代碼實(shí)例
#include <iostream> using namespace std; int main() { char name[256]; cout << "Please input your name: "; cin.getline(name, 256); cout << "The result is: " << name << endl; return 0; }
#include <iostream> using namespace std; int main( ) { char line[100]; cout << " Type a line terminated by 't'" << endl; cin.getline( line, 100, 't' ); cout << line << endl; return 0; }
普通函數(shù)getline()
函數(shù)語(yǔ)法結(jié)構(gòu):
在< 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);
函數(shù)的變量:
is :表示一個(gè)輸入流,例如 cin。
str :string類(lèi)型的引用,用來(lái)存儲(chǔ)輸入流中的流信息。
delim :char類(lèi)型的變量,所設(shè)置的截?cái)嘧址辉诓蛔远x設(shè)置的情況下,遇到'\n',則終止輸入
用法和上一種類(lèi)似,但是讀取的istream是作為參數(shù)is傳進(jìn)函數(shù)的。讀取的字符串保存在string類(lèi)型的str中。
代碼實(shí)例
#include <iostream> #include <string> using namespace std; int main() { string name; cout << "Please input your name: "; getline(cin, name); cout << "Welcome to here!" << name << endl; return 0; }
#include <iostream> #include <string> using namespace std; int main() { string name; cout << "Please input your name: "; getline(std::cin, name, '#'); cout << "Welcome to here!" << name << endl; return 0; }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- C++中g(shù)etline()、gets()等函數(shù)的用法詳解
- C++ cin.getline及getline()用法詳解
- C++中g(shù)etline()和get()的方法淺析
- C++的get()函數(shù)與getline()函數(shù)使用詳解
- 基于C++ cin、cin.get()、cin.getline()、getline()、gets()函數(shù)的使用詳解
- c++中string類(lèi)型和int類(lèi)型相互轉(zhuǎn)換的幾種常用方法
- 詳解C++中實(shí)現(xiàn)繼承string類(lèi)的MyString類(lèi)的步驟
- 探究C++中string類(lèi)的實(shí)現(xiàn)原理以及擴(kuò)展使用
- C++ string類(lèi)getline()用法實(shí)例詳解
相關(guān)文章
C語(yǔ)言中動(dòng)態(tài)內(nèi)存管理初學(xué)者容易犯的6個(gè)錯(cuò)誤分享
本篇文章主要介紹了初學(xué)者使用C語(yǔ)言中動(dòng)態(tài)內(nèi)存管理的4個(gè)函數(shù)時(shí)最容易犯的6個(gè)錯(cuò)誤,以及如何避免這些錯(cuò)誤,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2023-04-04解析C++中四種強(qiáng)制類(lèi)型轉(zhuǎn)換的區(qū)別詳解
本篇文章是對(duì)C++中四種強(qiáng)制類(lèi)型轉(zhuǎn)換的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05使用OpenGL實(shí)現(xiàn)3D立體顯示的程序代碼
本篇文章是對(duì)使用OpenGL實(shí)現(xiàn)3D立體顯示的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05基于VC中使用ForceInclude來(lái)強(qiáng)制包含stdafx.h的解決方法
本篇文章是對(duì)VC中使用ForceInclude來(lái)強(qiáng)制包含stdafx.h的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05