C++输入获取未知长度的行输入数组 与 输出控制

本文探讨了C++中cin的三种方式,包括cin.get()和cin.getline()的处理策略,特别是在输入超长时的行为。此外,还讲解了如何处理变长输入,特别是以输入结束符结束的情况。同时,介绍了在输入流与输出流中使用控制符进行格式化输出的方法,例如设置字段宽度、对齐方式和精度,以便更精确地控制数据的显示。
摘要由CSDN通过智能技术生成

头文件 #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(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值