欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言

在C++中一般使用cin來進行交互,獲取用戶輸入信息。cin是C++編程語言中的標準輸入流對象,即stream類的對象。cin主要用于從標準輸入讀取數(shù)據(jù),這里的標準輸入,指的是終端的鍵盤。主要用到有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、空格為分隔符,換行符為結束符號;

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

cin>>從緩存區(qū)讀取數(shù)據(jù)時,會自動忽略作為第一個字符存在的Tab、空格(Space)、換行,繼續(xù)讀取下一個字符,若緩存區(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 << "測試字符..." << std::endl;

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

	return 0;
}

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

2.1 函數(shù)介紹

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

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

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

3、getline()

從標準輸入設備讀取一串字符串,并以指定的結束符結束。

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

在這里插入圖片描述

函數(shù)介紹

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

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

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

相關文章

最新評論