前言
在C++中一般使用
cin
来进行交互,获取用户输入信息。cin是C++编程语言中的标准输入流对象
,即stream类
的对象。cin主要用于从标准输入读取数据,这里的标准输入,指的是终端的键盘。主要用到有cin >>
、cin.get()
、cin.getline()
。cin读取数据也是从缓冲区
中获取数据,缓冲区为空时,cin的成员函数会阻塞等待数据
的到来,一旦缓冲区中有数据,就触发cin的成员函数去读取数据
。
一、cin
1、cin >>
支持
连续
读取,以Tab、空格
为分隔符,换行符
为结束符号;
#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>>
从缓存区读取数据时,会自动忽略作为第一个字符存在的Tab、空格(Space)、换行
,继续读取下一个字符,若缓存区为空
,则等待
。但是如果读取成功
,字符后面的分隔符是残留在缓冲区
的,cin>>不做处理。
2、cin.get()
读取
字符
,包含空格
;
#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 函数介绍
int get();
istream& get(char&c);
istream& get (char* s, streamsize n);
istream& get (char* s, streamsize n, char delim);
istream& get(streambuf&sb);
istream& get (streambuf& sb, char delim);
3、getline()
从标准输入设备读取一串字符串,并以指定的结束符结束。
#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;
}
函数介绍
istream& getline (char* s, streamsize n );
istream& getline (char* s, streamsize n, char delim );
到此这篇关于C++ cin输入的几种方式的文章就介绍到这了,更多相关C++ cin输入内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!