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)嘧址?;在不自定義設(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)文章
Qt實(shí)現(xiàn)小功能之復(fù)雜抽屜效果詳解
在Qt自帶的控件中,也存在抽屜控件:QToolBar。但是,該控件有個(gè)缺點(diǎn):一次只能展開(kāi)一個(gè)抽屜信息,無(wú)法實(shí)現(xiàn)多個(gè)展開(kāi)。所以本文將自定義實(shí)現(xiàn)復(fù)雜抽屜效果,需要的可以參考一下2022-10-10
matlab遺傳算法求解車(chē)間調(diào)度問(wèn)題分析及實(shí)現(xiàn)源碼
這篇文章主要為大家介紹了matlab遺傳算法求解車(chē)間調(diào)度問(wèn)題解析,文中附含詳細(xì)實(shí)現(xiàn)源碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-02-02
C語(yǔ)言中一些將字符串轉(zhuǎn)換為數(shù)字的函數(shù)小結(jié)
這篇文章主要介紹了C語(yǔ)言中一些將字符串轉(zhuǎn)換為數(shù)字的函數(shù)小結(jié),分別為atoi()函數(shù)和atol()函數(shù)以及atof()函數(shù),需要的朋友可以參考下2015-08-08
C++中 STL list詳解及簡(jiǎn)單實(shí)例
這篇文章主要介紹了C++中 STL list詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-04-04
詳解C語(yǔ)言編程中的函數(shù)指針以及函數(shù)回調(diào)
這篇文章主要介紹了C語(yǔ)言編程中的函數(shù)指針以及函數(shù)回調(diào),函數(shù)回調(diào)實(shí)際上就是讓函數(shù)指針作函數(shù)參數(shù)、調(diào)用時(shí)傳入函數(shù)地址,需要的朋友可以參考下2016-04-04
C語(yǔ)言操作符進(jìn)階教程(表達(dá)式求值隱式類(lèi)型轉(zhuǎn)換方法)
這篇文章主要為大家介紹了C語(yǔ)言操作符進(jìn)階教程(表達(dá)式求值隱式類(lèi)型轉(zhuǎn)換方法)2022-02-02
詳解用C語(yǔ)言實(shí)現(xiàn)三子棋游戲流程
三子棋是一種民間傳統(tǒng)游戲,又叫九宮棋、圈圈叉叉、一條龍、井字棋等。將正方形對(duì)角線連起來(lái),相對(duì)兩邊依次擺上三個(gè)雙方棋子,只要將自己的三個(gè)棋子走成一條線,對(duì)方就算輸了2021-11-11

