溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C++中如何使用cin

發(fā)布時間:2021-09-27 10:41:15 來源:億速云 閱讀:195 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要為大家展示了“C++中如何使用cin”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“C++中如何使用cin”這篇文章吧。

前言

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

一、cin

1、cin >>

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

/*----------------------------------------------------------------------
     > 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ù)時,會自動忽略作為第一個字符存在的Tab、空格(Space)、換行,繼續(xù)讀取下一個字符,若緩存區(qū)為空,則等待。但是如果讀取成功,字符后面的分隔符是殘留在緩沖區(qū)的,cin>>不做處理。

C++中如何使用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 << "測試字符..." << std::endl;

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

	return 0;
}

C++中如何使用cin
C++中如何使用cin

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

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

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

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 << "請輸入:" ;
	std::cin.getline(name, 200);
	std::cout << name << std::endl;	
}

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

	return 0;
}

C++中如何使用cin

函數(shù)介紹

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

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

以上是“C++中如何使用cin”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI