#include <iostream>
#include <string>
using namespace std;
int main()
{
// 1、cin.get()等待屏幕输入一个字符,保存到c变量中
// 输入ab回车:第一次:a 第二次: b 第三次: 回车 第四次:等待下次输入
// 回车会遗留在缓冲区中
// char c = cin.get();
// cout << "c: " << c << endl;
// c = cin.get();
// cout << "c: " << c << endl;
// c = cin.get();
// cout << "c: " << c << endl;
// c = cin.get();
// cout << "c: " << c << endl;
// 2、cin.get(char1)带1个参数, 实现链式编程
// char char1, char2, char3, char4;
// cin.get(char1).get(char2).get(char3).get(char4);
// cout << char1 << " " << char2 << " " << char3 << " " << char4 << " " << endl;
// 3、cin.get(读取字符串, 读取个数): 读取字符串到字符数组buf[]中
// char buf[1000] = {0}; // 字符数组
// cin.get(buf,1000);
// 测试一下'\n'在缓冲区中
// char c = cin.get();
// if(c == '\n'){
// cout << "换行符遗留在缓冲区中" << endl;
// }
// else{
// cout << "换行符没有遗留在缓冲区中" << endl;
// }
// cout << buf << endl;
// 4、cin.getline 获取字符串。换行符没有在缓冲区中,被丢掉了
// char buf[1000] = {0};
// cin.getline(buf, 1000);
// char c = cin.get();
// if(c == '\n'){
// cout << "换行符遗留在缓冲区中" << endl;
// }
// else{
// cout << "换行符没有遗留在缓冲区中" << endl;
// }
// cout << buf << endl;
// 5、cin.ignore() 忽略
// cin.ignore(2); // 参数里写几,就忽略多少个字符 不写参数,默认1个
// char c = cin.get();
// cout << "c:" << c << endl;
// 6、cin.peek() 偷窥 偷看第一个字符,后续再使用cin.get(的时候还是从缓冲区的第一个开始)
// char c = cin.peek();
// cout << "c:" << c << endl;
// c = cin.get();
// cout << "c:" << c << endl;
// c = cin.get();
// cout << "c:" << c << endl;
// 7、cin.putback() 放回
char c = cin.get();
cin.putback(c); // 在哪里拿的,放回哪里?
char buf[1000] = {0};
cin.getline(buf,1000);
cout << "buf:" << buf << endl;
return 0;
}
标准输入流
缓冲区的概念:
标准输入流对象cin,重点掌握的函数
cin.get() //一次只能读取一个字符
cin.get(一个参数) //读一个字符
cin.get(两个参数) //可以读字符串
cin.getline()
cin.ignore()
cin.peek()
cin.putback()