C标准输入流

Posted Wecccccccc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C标准输入流相关的知识,希望对你有一定的参考价值。

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

标准输入流cin.get()
代码如下:

#include <iostream>
using namespace std;

//标准输入流cin.get()
void test01()
{
	char ch;
	while ((ch = cin.get()) != EOF)
	{
		cout << ch << endl;
	}

}

int main()
{
	test01();
	return 0;
}

cin.get()//一次只能读取一个字符
cin.get(一次参数)//读一个字符
cin.get(两个字符)//可以读字符串
cin.getline()

代码如下:

#include <iostream>
using namespace std;


void test01()
{
	char ch;
	//cin.get(ch);//读取一个字符
	char buf[256] = { 0 };
	//cin.get(buf, 256);//从缓冲区读一个字符串
	cin.getline(buf, 256);//读取一行数据 不读换行符


	cout << buf << endl;
}

int main()
{
	test01();
	return 0;
}

代码如下:

#include <iostream>
using namespace std;


void test01()
{
	char ch;
	cin.get(ch);
	cout << ch << endl;
	//cin.ignore();
	cin.ignore(10,'\\n');//忽略当前字符 从缓冲区取走了
	cin.get(ch);
	cout << ch << endl;
}

int main()
{
	test01();
	return 0;
}

测试结果:
在这里插入图片描述

cin.peek()
代码如下:

#include <iostream>
using namespace std;


void test01()
{
	cout << "请输入字符串" << endl;
	char ch;
	ch = cin.peek();//偷窥一下缓冲区,返回第一个字符 如果缓冲区没有,它会堵塞
	if (ch <= '9' && ch >= '0')
	{
		int number;
		cin >> number;
		cout << "您输入的是数字" << number << endl;
	}
	else
	{
		char buf[256] = { 0 };
		cin >> buf;
		cout << "您输入的是字符串:" << buf << endl;
	}

}

int main()
{
	test01();
	return 0;
}

测试结果:
在这里插入图片描述

在这里插入图片描述

cin.putback()

代码如下:

#include <iostream>
using namespace std;


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

}

int main()
{
	test01();
	return 0;
}

以上是关于C标准输入流的主要内容,如果未能解决你的问题,请参考以下文章

避免来自 Python 标准输入流的控制序列(如 ^[[C)

避免来自 C 或 C++ 标准输入流的控制序列(如 ^[[C)

C/C++编程笔记:C++中的标准输入流 & 标准输出流

C语言 文件的基本介绍

C标准输出流

java缓冲字符字节输入输出流:java.io.BufferedReaderjava.io.BufferedWriterjava.io.BufferedInputStreamjava.io.(代码片段