最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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點疑問:

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

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

結(jié)果:

第二點,代碼如下

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

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++私有繼承(三)

    C++私有繼承(三)

    這篇文章主要介紹了C++私有繼承(三),前面的文章我們已經(jīng)介紹過了C++私有繼承(一)和(二),下面小編就繼續(xù)基于之前的內(nèi)容繼續(xù)向大家介紹C++私有繼承,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-02-02
  • C語言菜鳥基礎(chǔ)教程之for循環(huán)

    C語言菜鳥基礎(chǔ)教程之for循環(huán)

    c語言中的for循環(huán)語句使用最為靈活,不僅可以用于循環(huán)次數(shù)已經(jīng)確定的情況,而且可以用于循環(huán)次數(shù)不確定而只給出循環(huán)結(jié)束條件的情況,它完全可以代替while語句.
    2017-10-10
  • Qt實現(xiàn)屏幕底部冒泡效果

    Qt實現(xiàn)屏幕底部冒泡效果

    這篇文章主要為大家詳細(xì)介紹了Qt實現(xiàn)屏幕底部冒泡效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • 詳解C++?OpenCV實現(xiàn)圖像拼接的原理及方法

    詳解C++?OpenCV實現(xiàn)圖像拼接的原理及方法

    本文以實現(xiàn)圖像拼接為目標(biāo),把分割開的圖像進(jìn)行拼接還原,核心的內(nèi)容包括:OpenCV圖像拼接相關(guān)原理以及OpenCV圖像拼接案例的實現(xiàn),感興趣的可以了解一下
    2022-07-07
  • 深入剖析Android中init進(jìn)程實現(xiàn)的C語言源碼

    深入剖析Android中init進(jìn)程實現(xiàn)的C語言源碼

    這篇文章主要介紹了Android中init進(jìn)程實現(xiàn)的C語言源碼,init屬性服務(wù)在安卓中屬于系統(tǒng)的底層Linux服務(wù),需要的朋友可以參考下
    2015-07-07
  • AVX2指令集優(yōu)化整形數(shù)組求和算法

    AVX2指令集優(yōu)化整形數(shù)組求和算法

    這篇文章主要為大家介紹了AVX2指令集優(yōu)化整形數(shù)組求和算法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • C語言的getc()函數(shù)和gets()函數(shù)的使用對比

    C語言的getc()函數(shù)和gets()函數(shù)的使用對比

    這篇文章主要介紹了C語言的getc()函數(shù)和gets()函數(shù)的使用對比,從數(shù)據(jù)流中一個是讀取字符一個是讀取字符串,需要的朋友可以參考下
    2015-08-08
  • C語言強(qiáng)制類型轉(zhuǎn)換規(guī)則實例詳解

    C語言強(qiáng)制類型轉(zhuǎn)換規(guī)則實例詳解

    強(qiáng)制類型轉(zhuǎn)換是把變量從一種類型轉(zhuǎn)換為另一種數(shù)據(jù)類型,下面這篇文章主要給大家介紹了關(guān)于C語言強(qiáng)制類型轉(zhuǎn)換的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • C++對數(shù)組的引用實例分析

    C++對數(shù)組的引用實例分析

    這篇文章主要介紹了C++對數(shù)組的引用實例分析,需要的朋友可以參考下
    2014-08-08
  • C++實現(xiàn)判斷字符串是否回文實例解析

    C++實現(xiàn)判斷字符串是否回文實例解析

    這篇文章主要介紹了C++實現(xiàn)判斷字符串是否回文,其中采用了數(shù)據(jù)結(jié)構(gòu)中棧以及過濾字符等技術(shù),,需要的朋友可以參考下
    2014-07-07

最新評論

永靖县| 潢川县| 贡嘎县| 佳木斯市| 乌拉特前旗| 永丰县| 江津市| 泸西县| 双流县| 兰考县| 清河县| 师宗县| 永善县| 正定县| 西充县| 乳山市| 东台市| 保德县| 德州市| 乌拉特后旗| 丹阳市| 荔浦县| 建宁县| 大理市| 西宁市| 昌邑市| 凤庆县| 江达县| 平谷区| 顺昌县| 衡阳市| 南投县| 东宁县| 博野县| 依安县| 湖州市| 招远市| 彝良县| 上犹县| 泰宁县| 祁连县|