IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> C++标准输入流 -> 正文阅读

[数据结构与算法]C++标准输入流

#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;

//C++输入输出包含以下三个方面的内容:
//对系统指定的标准设备的输入和输出。即从键盘输入数据,输出到显示器屏幕。这种输入输出称为标准的输入输出,简称标准I / O。
//
//以外存磁盘文件为对象进行输入和输出,即从磁盘文件输入数据,数据输出到磁盘文件。以外存文件为对象的输入输出称为文件的输入输出,简称文件I / O。
//
//对内存中指定的空间进行输入和输出。通常指定一个字符数组作为存储空间(实际上可以利用该空间存储任何信息)。这种输入和输出称为字符串输入输出,简称串I / O。主要用于像共享内存这样的

void test01()
{
	string str;
	cin >> str; //遇到空格就结束输入,但是空格会留在缓冲区
	cout << str << endl;
	//清楚缓冲区
	//1. 
	//char B;
	//while ((B = cin.get()) != '\n') {}
	//2. //C++:清除输入缓冲区的所有内容,在VS中没有效果
	//cin.sync(); 在VS2019下没有没有效果
	//3. //C++:清除输入缓冲区的所有内容,直到遇到回车符为止, 各种编译器都有效
	cin.ignore(std::numeric_limits< streamsize >::max(), '\n');

	char C = cin.get();
	cout << "C = " <<C << endl;
}

void test02()
{
	char C = cin.get();  //默认获取一个字符, 会将'\n'等字符留在缓冲区
	cout << "C = " << C << endl;

	//一个参数 : 可以再次输入字符修改原来的变量
	cin.get(C); //引用
	cout << "C = " << C << endl;
	
	char a, b, c;
	cin.get(a).get(b).get(c); //链式编程,可以一次对多个变量进行修改
	cout << "a= " << a << " b= " << b << " c= " << c << endl;
}

void test03()
{
	//int A = cin.get();
	//cout << A << endl;
	//cin.get()获取的是char字符,不能用整型数据类型来接收

	char arr[1024] = { 0 };
	//两个参数:获取字符串,并将字符串输入到对应的char型数组中,但是会在缓冲区留下换行符
	cin.get(arr, 1024);

	char C = cin.get();
	if (C == '\n')
	{
		cout << "缓冲区残留有换行符"<<endl;
	}
	else
	{
		cout << "缓冲区的换行符已被丢弃" << endl;
	}
}

void test04()
{
	char arr[1024] = { 0 };
	//获取字符串,并将字符串输入到对应的char型数组中,不会在缓冲区留下换行符
	cin.getline(arr, 1024);

	char C = cin.get();
	if (C == '\n')
	{
		cout << "缓冲区残留有换行符" << endl;
	}
	else
	{
		cout << "缓冲区的换行符已被丢弃" << endl;
	}
	cout << "arr = " << arr << endl;
}

void test05()
{
	cin.ignore(); //默认忽略第一个输入字符
	cin.ignore(3); //添加参数X,忽略X个输入字符

	char C = cin.get();
	cout << "C = " << C << endl;
}

void test06()
{
	char A = cin.peek();
	char B = cin.get();
	char C = cin.get();

	cout << A << endl; //偷窥,但并不会取走缓冲区里的输入字符
	cout << B << endl; //获取缓冲区的第一个字符
	cout << C << endl;


}

void test07()
{
	char C = cin.get();
	cin.putback(C); //将字符放回原位

	char arr[1024] = { 0 };
	cin.getline(arr, 1024);
	cout << arr << endl;
}

int main()
{
	//标准输入流对象cin常见函数
	//cin >> a;   // a如果是字符串,cin遇到空格返回,并且把空格保留在输入缓冲区
	//cin.get();  // 获取一个字符
	//cin.get(一个参数);
	//cin.getline(两个参数);
	//cin.ignore();
	//cin.peek();
	//cin.putback();

	test01();
	//test02();
	//test03();
	//test04();
	//test05();
	//test06();
	//test07();

	return 0;
}

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-12-26 22:27:24  更:2021-12-26 22:28:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 17:45:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码