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

C++ cin輸入的多種方法詳解

 更新時(shí)間:2021年09月27日 09:18:01   作者:Jxiepc  
cin是C++編程語言中的標(biāo)準(zhǔn)輸入流對(duì)象,即stream類的對(duì)象。cin主要用于從標(biāo)準(zhǔn)輸入讀取數(shù)據(jù),這里的標(biāo)準(zhǔn)輸入,指的是終端的鍵盤。接下來通過本文給大家分享C++ cin輸入的幾種方式,一起看看吧

前言

在C++中一般使用cin來進(jìn)行交互,獲取用戶輸入信息。cin是C++編程語言中的標(biāo)準(zhǔn)輸入流對(duì)象,即stream類的對(duì)象。cin主要用于從標(biāo)準(zhǔn)輸入讀取數(shù)據(jù),這里的標(biāo)準(zhǔn)輸入,指的是終端的鍵盤。主要用到有cin >>、cin.get()、cin.getline()。cin讀取數(shù)據(jù)也是從緩沖區(qū)中獲取數(shù)據(jù),緩沖區(qū)為空時(shí),cin的成員函數(shù)會(huì)阻塞等待數(shù)據(jù)的到來,一旦緩沖區(qū)中有數(shù)據(jù),就觸發(fā)cin的成員函數(shù)去讀取數(shù)據(jù)。

一、cin

1、cin >>

支持連續(xù)讀取,以Tab、空格為分隔符,換行符為結(jié)束符號(hào);

/*----------------------------------------------------------------------
     > File Name: cinDemo01.cpp
     > Author: Jxiepc
     > Mail: Jxiepc
     > Created Time: Mon 20 Sep 2021 10:09:55 AM CST
 ----------------------------------------------------------------------*/
 
#include<iostream>
#include<unistd.h>
#include<cstring>


int main(int argc, char *argv[]){
     std::string s;
     while(std::cin >> s){
         std::cout << s << std::endl;
     }                                                                                                               
     return 0;
}

當(dāng)cin>>從緩存區(qū)讀取數(shù)據(jù)時(shí),會(huì)自動(dòng)忽略作為第一個(gè)字符存在的Tab、空格(Space)、換行,繼續(xù)讀取下一個(gè)字符,若緩存區(qū)為空,則等待。但是如果讀取成功,字符后面的分隔符是殘留在緩沖區(qū)的,cin>>不做處理。

在這里插入圖片描述

2、cin.get()

讀取字符,包含空格

/*----------------------------------------------------------------------
	> File Name: cinGetDemo.cpp
	> Author: Jxiepc
	> Mail: Jxiepc
	> Created Time: Mon 20 Sep 2021 10:20:59 AM CST
----------------------------------------------------------------------*/

#include<iostream>
#include<unistd.h>
#include<cstring>
#include<fstream>


void test02(){

	char str[256];

	std::cout << "Enter the name of an existing text file: ";
    std::cin.get (str,256);    // get c-string
	
	std::ifstream is(str);     // open file
	  
	char c;
	while (is.get(c))          // loop getting single characters
	    std::cout << c;
				  
	is.close();                // close file	
}

void test01(){
	char a,b; 
	a = std::cin.get();
	std::cout << "a:" << a <<std::endl;

	std::cin.get(b);
	std::cout << "b:" << b << std::endl;
}

int main(int argc, char *argv[]){
	std::cout << "測(cè)試字符..." << std::endl;

	test01();
	std::cout << "--------------------------------------" << std::endl;
	//sleep(1);
	//std::cout << "測(cè)試get讀取文件" << std::endl;
	//test02();	

	return 0;
}

在這里插入圖片描述
在這里插入圖片描述

2.1 函數(shù)介紹

int get();
istream& get(char&c);
/*
* @func:- 單個(gè)字符;	
* 		 - 不會(huì)忽略分隔符;
* 		 - 成功讀取的時(shí)候則返回字符的ASCII碼值,遇到文件結(jié)束符時(shí)則返回EOF(-1);
*/

istream& get (char* s, streamsize n);
istream& get (char* s, streamsize n, char delim);
/*
* @func: - 從在流提取C-串,直到(n-1)字符已被提取或定界字符結(jié)束。('\n')或DELIM(自定義)。
* 		 - 若找到定界符則不會(huì)從輸入序列中提取,并保留作為從流中提取的下一個(gè)字符。
* 		 - 如果n大于0,即使提取的是空字符串,也會(huì)自動(dòng)添加一個(gè)空字符('\0')到寫入序列。
* @param s:接收字符串;
* @param n:- 寫入s的最大字符數(shù)(包括終止空字符);
* 			- 若小于2,則函數(shù)不提取任何字符并設(shè)置failbit;
* 			- Streamsize是一種帶符號(hào)的整型。  
* @param delim:自定義結(jié)束符。
*/

istream& get(streambuf&sb);
istream& get (streambuf& sb, char delim);
/*
* @func:- 從流中提取字符,并將其插入到輸出序列流緩沖區(qū)對(duì)象控制的某人,('\n')或DELIM(自定義)。 
* 		 - 只有成功插入的字符才會(huì)從流中提取。分隔字符,還是最終未能插入的字符,保留在那里作為下一個(gè)要從流中提取的字符。  
*/

3、getline()

從標(biāo)準(zhǔn)輸入設(shè)備讀取一串字符串,并以指定的結(jié)束符結(jié)束。

/*----------------------------------------------------------------------
	> File Name: cinGetlineDemo.cpp
	> Author: Jxiepc
	> Mail: Jxiepc
	> Created Time: Mon 20 Sep 2021 11:08:17 AM CST
----------------------------------------------------------------------*/

#include<iostream>
#include<unistd.h>
#include<cstring>


void test01(){

	char name[200];
	

	std::cout << "請(qǐng)輸入:" ;
	std::cin.getline(name, 200);
	std::cout << name << std::endl;	
}

int main(int argc, char *argv[]){
	
	test01();

	return 0;
}

在這里插入圖片描述

函數(shù)介紹

istream& getline (char* s, streamsize n );
istream& getline (char* s, streamsize n, char delim );

/*
* @func:- 從流中提取字符作為未格式化的輸入,并將它們以c字符串的形式存儲(chǔ)到s中,直到提取的字符成為分隔符,或者有n個(gè)字符被寫入s中(包括結(jié)束的空字符);
* 		 - 如果到達(dá)文件結(jié)束符,該函數(shù)也將停止提取字符;
* 		 - 若n大于0,提取到空串,也會(huì)自動(dòng)添加一個(gè)空字符('\0')到寫入序列。  
* @param s:指向字符數(shù)組的指針,在該數(shù)組中提取的字符存儲(chǔ)為c字符串;
* @param n:寫入s的最大字符數(shù)(包括終止空字符);
* @param delim:結(jié)束符;
*/

到此這篇關(guān)于C++ cin輸入的幾種方式的文章就介紹到這了,更多相關(guān)C++ cin輸入內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言二分法求解方程根的兩種方法

    C語言二分法求解方程根的兩種方法

    這篇文章主要為大家詳細(xì)介紹了C語言二分法求解方程根的兩種方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • C語言函數(shù)的遞歸調(diào)用詳情

    C語言函數(shù)的遞歸調(diào)用詳情

    這篇文章主要介紹了C語言函數(shù)的遞歸調(diào)用詳情,遞歸做為一種算法在程序設(shè)計(jì)語言中廣泛應(yīng)用,主要的思考方式就是大事化小,下文具體的相關(guān)介紹,需要的小伙伴可以參考一下
    2022-04-04
  • C++面試題之結(jié)構(gòu)體內(nèi)存對(duì)齊計(jì)算問題總結(jié)大全

    C++面試題之結(jié)構(gòu)體內(nèi)存對(duì)齊計(jì)算問題總結(jié)大全

    這篇文章主要給大家總結(jié)了關(guān)于C++面試題中結(jié)構(gòu)體內(nèi)存對(duì)齊計(jì)算問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),通過這些介紹的內(nèi)容對(duì)大家在面試C++工作的時(shí)候,會(huì)有一定的參考幫助,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • C語言通訊錄管理系統(tǒng)完整代碼

    C語言通訊錄管理系統(tǒng)完整代碼

    這篇文章主要為大家詳細(xì)介紹了C語言通訊錄管理系統(tǒng)完整代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • C語言實(shí)現(xiàn)素因子分解

    C語言實(shí)現(xiàn)素因子分解

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)素因子分解,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • 解析C++浮點(diǎn)數(shù)無效值的定義與無效值判定的小結(jié)

    解析C++浮點(diǎn)數(shù)無效值的定義與無效值判定的小結(jié)

    本篇文章是對(duì)C++中浮點(diǎn)數(shù)無效值的定義與無效值的判定進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C語言深入了解函數(shù)

    C語言深入了解函數(shù)

    C語言函數(shù)是用來模塊化構(gòu)建程序的。如果你的功能少,你可以全都寫在mian函數(shù)中,但是當(dāng)實(shí)現(xiàn)功能多的時(shí)候,如果全寫在main的函數(shù)里,不僅代碼不美觀,而且函數(shù)實(shí)現(xiàn)的時(shí)候結(jié)構(gòu)復(fù)雜,代碼重復(fù)
    2022-05-05
  • 帶你用C語言實(shí)現(xiàn)strtok和字符串分割函數(shù)

    帶你用C語言實(shí)現(xiàn)strtok和字符串分割函數(shù)

    下面小編就為大家?guī)硪黄猚語言中字符串分割函數(shù)及實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2021-09-09
  • C++超詳細(xì)分析順序表

    C++超詳細(xì)分析順序表

    程序中經(jīng)常需要將一組數(shù)據(jù)元素作為整體管理和使用,需要?jiǎng)?chuàng)建這種元素組,用變量記錄它們,傳進(jìn)傳出函數(shù)等。一組數(shù)據(jù)中包含的元素個(gè)數(shù)可能發(fā)生變化,順序表則是將元素順序地存放在一塊連續(xù)的存儲(chǔ)區(qū)里,元素間的順序關(guān)系由它們的存儲(chǔ)順序自然表示
    2022-03-03
  • C++ 使用CRC32檢測(cè)內(nèi)存映像完整性的實(shí)現(xiàn)步驟

    C++ 使用CRC32檢測(cè)內(nèi)存映像完整性的實(shí)現(xiàn)步驟

    當(dāng)我們使用動(dòng)態(tài)補(bǔ)丁的時(shí)候,那么內(nèi)存中同樣不存在校驗(yàn)效果,也就無法抵御對(duì)方動(dòng)態(tài)修改機(jī)器碼了,為了防止解密者直接對(duì)內(nèi)存打補(bǔ)丁,我們需要在硬盤校驗(yàn)的基礎(chǔ)上,增加內(nèi)存校驗(yàn),防止動(dòng)態(tài)補(bǔ)丁的運(yùn)用。
    2021-06-06

最新評(píng)論

会理县| 新营市| 旬邑县| 顺平县| 岳池县| 内黄县| 宿松县| 安顺市| 恩平市| 潼南县| 舟曲县| 宁阳县| 潮安县| 项城市| 西和县| 巫溪县| 上高县| 呼玛县| 宜良县| 遂川县| 武功县| 铅山县| 鞍山市| 白玉县| 无为县| 东港市| 子长县| 乳山市| 抚顺县| 南澳县| 安陆市| 教育| 锦屏县| 建水县| 赤峰市| 博白县| 达尔| 新巴尔虎左旗| 额济纳旗| 安塞县| 惠东县|