C++标准输入流

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>

using namespace std;

#if 0

标准输入流对象 cin,重点掌握的函数
cin.get() //一次只能读取一个字符
cin.get(一个参数) //读一个字符
cin.get(三个参数) //可以读字符串
cin.getline()
cin.ignore()
cin.peek()
cin.putback()

#endif

//标准输入流 cin.get():获取一个字符 EOF:结束符
void test01() {
	/*char ch;
	while ((ch=cin.get())!=EOF)
	{
		cout << ch << endl;
	}*/
	//cin.get()
	//char ch2;
	//cin.get(ch2);//读取一个字符
	char buf[256]{ 0 };
	//cin.get(buf, 256);   //从缓冲区读一个字符串
	cin.getline(buf, 256); //从缓冲区读取一行数据 不读换行符
	cout << buf << endl;   
}

//cin.ignore()  忽略当前字符 如果带一个参数就忽略参数长度的字符
void test02() {
	char ch;
	cin.get(ch);
	cout << ch << endl;;
	cin.ignore(10); //冲缓冲区取走10个字符
	cin.get(ch);
	cout << ch << endl;
}

//cin.peek() 偷窥一下缓冲区,返回第一个数据、
void test03() {
	cout << "请输入数组或者字符串:" << endl;
	char ch;
	ch = cin.peek();
	if (ch > '0'&&ch <= '9')
	{
		int number;
		cin >> number;
		cout << "您输入的是数字" << number << endl;
	}
	else {
		char buf[256];
		cin >> buf;
		cout << "您输入的是字符" << buf << endl;
	}
}

//cin.putback()and cin.get()
void test04() {
	cout << "请输入字符或者数字" << endl;
	char ch;
	cin.get(ch);//从缓冲区取走一个字符
	if (ch>='0'&&ch<='9')
	{
		cin.putback(ch);//把取走的字符放回缓冲区。
		int in;
		cin >> in;
		cout << "你输入的是数字:" << in;
	}
	else {
		cin.putback(ch);
		char buf[256];
		cin >> buf;
		cout << "你输入的是字符:" << buf;
	}

}

int main(void)
{
	test01();
	test02();
test03();
test04();
}

猜你喜欢

转载自blog.csdn.net/weixin_43778462/article/details/92769216