头文件 #include <iostream>
程序的输入都建有一个缓冲区,即输入缓冲区。一次输入过程是这样的,当一次键盘输入结束时会将输入的数据存入输入缓冲区,而cin函数直接从输入缓冲区中取数据。正因为cin函数是直接从缓冲区取数据的,所以有时候当缓冲区中有残留数据时,cin函数会直接取得这些残留数据而不会请求键盘输入
cin的三种方式
cin >> n; //Enter、Space、Tab作为结束条件(会将其丢出缓冲区)
ch = cin.get() | cin.get(ch) //Enter作为结束符(不丢弃缓冲区中的Enter,即下次输入的是enter)
cin.getline(数组名,长度,结束符) 大体与 cin.get(数组名,长度,结束符)类似。
cin.get()当输入的字符串超长时,不会引起cin函数的错误,后面的cin操作会继续执行,只是直接从缓冲区中取数据。但是cin.getline()当输入超长时,会引起cin函数的错误,后面的cin操作将不再执行。
变长输入
当输入数据的长度不固定时,即以输入结束符结束时:
abcd...balabla+enter
Ctrl + Z
enter
此时要获取缓冲区中的字符或者数组可以通过以下方式:
char ch;
ch = cin.get();
示例:
#include <iostream>
#include<algorithm>
#include <vector>
using namespace std;
void getin(