cin用法介绍

Java高频面试基础问题与知识点整理 Java高频面试知识点总结:覆盖高频基础知识考点+高频集合知识点深入分析+高频多线程与并发编程面试题汇总+其他扩展考察等。 阅读详情

</pre>1. cin.get()<p></p><p><span style="font-size:14px">读取单个字符</span></p><p><span style="font-size:14px">字符变量=cin.get(),相当于cin.get(字符变量)</span></p><p><span style="font-size:14px"></span></p><pre name="code" class="html">#include<iostream>
using namespace std;
int main()
{
	char cstr;
	cstr=cin.get();
	cout<<cstr<<endl;
	return 0;
}
输入:abcd        输出:a      由此可知,它只能读取第一个字符

修改程序:

#include<iostream>
using namespace std;
int main()
{
	char cstr,bstr;
	cstr=cin.get();
	bstr=cin.get();
	cout<<cstr<<endl<<bstr<<endl;
	return 0;
}
输入:abcd   输出:a b

         在cin这个对象里,有一个存储字符的流,可以想象成缓冲区,但事实上是cin里封装的一个东西。当我们在程序里输入abcd,对象cin获得我们输入的字符,然后通过.get()把流里面的第一个字符去掉,赋给cstr;此时,cin里存储的流数据位bcd;当运行到bstr=cin.get()时,把流数据b拿出来赋给bstr,之后,cin里的流数据为cd。

再修改程序:

#include<iostream>
using namespace std;
int main()
{
	char cstr,bstr;
	cstr=cin.get();
	cin.get();
	bstr=cin.get();
	cout<<cstr<<bstr<<endl;
	return 0;
}
输入:abc  输出:ac

由此可知,当空回调用cin.get()时,cin.get()便自动在cin流数据中删除一个字母,起删除作用。


2. cin.getline()

    获取一整行文本

    getline(char *line,int size,char='\n')参数分别是字符指针,字符长度,行结束标识符

#include<iostream>
using namespace std;
int main()
{
	char cstr[200];
	cin.getline(cstr,sizeof(cstr));//第三个参数不输入,默认回车为结束标识符
	cout<<cstr<<endl;
	return 0;
}
接下来,我们讨论第三个参数的作用:

修改程序:

#include<iostream>
using namespace std;
int main()
{
	char cstr[200];
	cin.getline(cstr,sizeof(cstr),'X');
	return 0;
}
这样,X成为终止符


3.cin.clear()

#include<iostream>
using namespace std;
int main()
{
	int a;
	cin>>a;
	cout<<cin.rdstate()<<endl;
	if(cin.rdstate()==ios::goodbit)cout<<"输入数据的类型正确"<<endl;
	if(cin.rdstate()==ios::failbit)cout<<"输入数据类型错误"<<endl;
	return 0;
}
我们定义了输入的变量时整型,但如果我们输入了英文字母或汉字,就会发生错误,cin.rdstate可以检测这个错误。

cin.rdstate返回0(即ios::goodbit),表示没有错误

cin.rdstate返回4(即ios::failbit),发生非致命错误,不能继续输入或操作。cin.clear可以控制cin中对这个问题的标识

语法:cin.clear(标识符)

          goodbit  无错误

          Eofbit     已到达文件尾

          failbit      非致命的输入/输出错误,无法挽回

          badbit     致命的输入/输出错误,无法挽回

通过cin.clear我们能确认它的内部标识符

#include<iostream>
using namespace std;
int main()
{
	int a;
	while(1)
	{
		cin>>a;
		if(!cin)
		{
			cout<<"输入有错,请重新输入"<<endl;
			cin.clear();
			cin.sync();//清空流
		}
		else
		{
			cout<<a;
			break;
		}
	}
	cin>>a;
	return 0;
}
上面的cin默认参数为0,即无错误,正常操作。当我们输入英文字母时,它的状态标识改为fail(即1)

此时用cin.clear让错误标识改回为0,让我们可以继续输入,再清空数据继续输入。

    













12027.linux flash驱动之IS25LP01G/IS25WWP01G 一页:512字节 --> 扇区 4096字节 --> 块 32k,64k, 层层递进关系。 阅读详情

相关推荐

XY2-100协议解析

1.XY2-100包括四路信号 : SENDCK(时钟信号)、SYNC(同步信号)、CHANNELX(X通道)、CHANNELY(Y通道)

qq_38360574的博客 9532

Visual Studio2019 新手C++教程(二)

** Visual Studio2019 新手C++教程(二) ** if,else语句的应用 #include<iostream> using namespace; int main() { int a; cout<<"57*40="; cin>>a; return 0; }

Xjy20070218的博客 3786

Hierarchical Flow Partition(Top-down&&Bottom-up)

hierarchy flow是将设计切分成多个block,分别处理单个block,然后完成后,将它们进行拼接以完成最终的chip。一般划分为三个阶段:chip planning;physical budget就是pin assignmenthierarchy flow实现的方法有两种,一种是top-down,另一种是bottom-up,无论是哪种,都是都要通过flatten的方法分别全局范围进行优化实现。

qq_39493558的博客 3072

C++中cin的详细用法

一,cin等的简介 1cin等属于istream流类的对象,默认对应标准输出设备,一般认为是键盘。(流在这里的意思可以粗略的理解为数据的流动(输入输出)); 2.cout是ostream流的对象,默认对应标准输出流设备,一般认为是显示器。 后面为较为特殊的输出,我们一般不需要了解过于深刻。 3.cerr是ostream 类的对象。默认对应标准输出流设备,一般认为是显示器。而且是非缓冲输出。可以理解为出现程序错误的时候,会直接把错误信息输出到显示器。 4.clog是ostream 类的对象。默认对应

xiaziqiqi的博客 2万+

五大经典遥感数据集对比:LoveDA、Potsdam、Toronto、Vaihingen、Massachusetts Roads选哪个?

本文深度对比了LoveDA、Potsdam、Vaihingen、Toronto和Massachusetts Roads五大经典遥感数据集。针对城市监测、道路提取、土地分类等不同任务,从分辨率、标注质量、数据规模及场景多样性等核心维度进行分析,为研究者根据项目目标、硬件条件与应用场景选择最合适的遥感数据集提供决策指南。

weixin_29057065的博客 237

ScanNet数据集详解

ScanNet 是一个 RGB-D 视频数据集,在超过 1500 次扫描中包含了 250 万个视图,并标注了 3D 相机位姿、表面重建和实例级的语义分割。为了收集这些数据,设计了一个易于使用且具有扩展性的 RGB-D 捕获系统,包括自动化的表面重建和众包的语义标注。如果您想下载 ScanNet 数据,请使用您的机构邮箱地址填写一份 ScanNet 使用条款协议,并发送至 scannet@googlegroups.com。压缩包是将3D的标注信息“拍扁”成2D图片的结果,对应原始视频的每一帧。

frostmelody 全网同名,大家多多关注呀~ 持续分享优质内容! 3919

cin的输入方式

cin常用的有三种方法: cin>> cin.get() cin.getline()

java领域博主 9345

Wireshark抓包实战:5个CTF比赛中高频出现的流量分析技巧(附真实案例)

本文分享了Wireshark在CTF比赛和实战渗透中的五个核心流量分析技巧。内容涵盖从宏观统计概览锁定可疑目标、深度解析ICMP与HTTP等协议、追踪重组完整会话流,到利用字符串搜索和命令行工具进行自动化分析。掌握这些高阶技巧能显著提升分析海量网络流量的效率与精准度。

rrr55的博客 261

【C++杂项】cin的详细用法

cin的主要用法

wlisontj的博客 7470

QT入门开发一个时钟

本文讲述了时钟开发的具体过程以及代码。 涉及到一下几个知识点: 1. 定时器使用 2. 本地时间获取 3. resource资源读取 4. 图片绘制 5. 图片按照中心旋转 6. sin或者cos角度计算。

啊渊的专栏 5145

一个严谨的STM32串口DMA发送&接收(1.5Mbps波特率)机制

本文描述串口DMA收/发机制设计,及STM32串口DMA收/发实现。

只要思想不滑坡,想法总比问题多。 5万+

cin用法集锦

学C++的时候,这几个输入函数弄的有点迷糊;这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行)转载请保留作者信息; 1、cin  输入的变量为整形时,会滤掉不可见字符;接受字符串到字符数组时,遇见空格、回车、Tab结束 1、cin.get() cin.get() 或 cin.get(字符变量名) 2、cin.g

yonghuming123__的博客 1394

【图像去噪】基于梯度为0法实现图像去噪附matlab代码

近几年,徐立提出的 L0 梯度最小化模型在图像平滑领域得到了广泛的应用和发展[11]. 和以往的局部滤波模型不同的是该模型可以全局的估计图像的像素值,因此,L0 梯度最小化模型在处理图像的同时能够很好的保护图像的边缘.​。

qq_59747472的博客 184

cin用法介绍(特别是学习了cin.clear和cin.sync)

cin用法介绍  摘自http://hi.baidu.com/jrckkyy/blog/item/0a4a3026b10a8f128b82a184.html第一次搞cin,真是搞昏人了,现在逐渐开始明白是什么东东,一起探讨一下吧! 首先大家要知道cin是怎么一回事,为什么要有?在C中,输入输出要用printf和scanf,这是2个很麻烦的东西,因为在输入数据的同时还要说明数据的类型,如果输入数据较...

scsongyue的博客 1612

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

cin用法介绍[C++]

第一次搞cin,真是搞昏人了,现在逐渐开始明白是什么东东,一起探讨一下吧! 首先大家要知道cin是怎么一回事,为什么要有? 在C中,输入输出要用printf和scanf,这是2个很麻烦的东西,因为在输入数据的同时还要说明数据的类型,如果输入数据较多,那就很麻烦了,所以我们的C++搞了两个更爽的东西cout和cin,来替换它们.首先我们先了解一下这两个东西的来处,它们是来自C++的一个类库叫

SunStone的小屋 1150

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

阅读cin用法介绍的收获

#include using namespace std; int main() {         int a;         cin>>a;         cout<<cin.rdstate()<<endl;         if(cin.rdstate() == ios::goodbit) { cout<<"输入数据的类型正确,无错误!"<<endl;

vinacky 737

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: sort函数
下一篇: 补码
Praker
博客等级 码龄13年 12粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值