从键盘读取一行的方法

cin类中的成员函数getline()和get()--使用数组来处理字符串

cin.getline(数组,要读入的字符数)。getline()将丢弃换行符.这个成员函数通过换行符来确定行尾,但是不保存换行符。相反在存储字符串时使用空字符(\0)来替换换行符。



以下是输出,证明是可以的。但是就是要用到数组,和确定的读取个数。

cin.get(数组,要读人的字符数)。get(数组,要读人的字符数)将丢弃换行符,这个成员函数也是通过换行符来确定行尾,但是换行符还是会保存在输入队列中,可以采取使用cin.get()将换行符过滤掉。



以下是输出



cin.getline()和cin.get()之间的区别,cin.getline()直接读取一行,但是有缺点就是,当读取的字节数满了的时候无法知道,是因为字节数满了而停止的还是读取到了一行到达换行符而导致的停止。而cin.get()就可以通过查看下一个输入字符,如果是换行符证明读取到了一行,否则证明输入流中还有其他数据。

通过cin.getline()和cin.get()会导致的问题:

1.cin.get()读取空行的时候会导致设置失效位。这个意味着接下来的输入将被阻止,可以通过cin.clear()来重新恢复失效位。

2.当输入字符串可能比分配的空间大的时候,cin.getline()和cin.get()会将余下的字符串留在输入队列中,而getline()还会设置失效位,并关闭后面的输入。

3.当混合输入数字和面向行的字符串会导致问题。就是当输入数字之后,再输入字符串,会将输入数字那一次输入的换行符,用在下一行的读入里面,但是此时得到的是换行符,所以会导致后面的输入无法获得。可以通过cin.get()或者是cin.get(ch)来实现读取换行符。

使用字符串进行整行的读入

getline(cin,str),这样就可以进行整行的读入了。



以下是通过读取3行作为例子,注意要在输入数字的时候,进行cin.get()清除换行符。

C++从键盘读取一行的方法的更多相关文章

  1. 编写javad代码实现使用Scanner从键盘读取一行输入,去掉其中重复字符, 打印出不同的那些字符

    package com.loaderman.test; import java.util.HashSet; import java.util.Scanner; public class Test2 { ...

  2. Java笔记之Scanner先读取一个数字,在读取一行字符串方法分析

    问题:大家在学习Java读取数据的时候一般都是使用Scanner方法读取数据,但是其中有一个小问题大家可能不知道, 就是我们在使用scanner的时候如果你先读取一个数字,在读取一行带有空格的字符串, ...

  3. python中readline判断文件读取结束的方法

    注:内容来自网络 本文实例讲述了python中readline判断文件读取结束的方法.分享给大家供大家参考.具体分析如下: 大家知道,python中按行读取文件可以使用readline函数,下面现介绍 ...

  4. 6-x1 read命令:从键盘读取数据

    1.read的用法 read从 STDIN 读取一行数据并将其赋给一个变量,如果没有进行重定向,默认就是从键盘读取用户输入的数据:如果进行了重定向,那么可以从文件中读取数据. read 命令的用法为: ...

  5. C#读取Excel遇到无法读取的解决方法

    C#读取Excel遇到无法读取的解决方法:1.在导入数据连接字符串中,将IMEX=1加入,“Provider=Microsoft.Jet.OLEDB.4.0;Data Source="C:\ ...

  6. Java学习-029-JSON 之三 -- 模仿 cssSelector 封装读取 JSON 数据方法

    前文简单介绍了如何通过 json-20141113.jar 提供的功能获取 JSON 的数据,敬请参阅:Java学习-028-JSON 之二 -- 数据读取. 了解学习过 JQuery 的朋友都知道, ...

  7. (转载)ios关闭虚拟键盘的几种方法

    在iOS应用开发中,有三类视图对象会打开虚拟键盘,进行输入操作,但如何关闭虚拟键盘,却没有提供自动化的方法.这个需要我们自己去实现.这三类视图对象分别是UITextField,UITextView和U ...

  8. 分享:Perl打开与读取文件的方法

    在Perl中可以用open或者sysopen函数来打开文件进行操作,这两个函数都需要通过一个文件句柄(即文件指针)来对文件进行读写定位等操作. Perl打开与读取文件的方法,供大家学习参考.本文转自: ...

  9. 关闭ios虚拟键盘的几种方法

    在iOS应用开发中,有三类视图对象会打开虚拟键盘,进行输入操作,但如何关闭虚拟键盘,却没有提供自动化的方法.这个需要我们自己去实现.这三类视图对象分别是UITextField,UITextView和U ...

  10. IOS 点击空白处隐藏键盘的几种方法

    IOS 点击空白处隐藏键盘的几种方法     IOS7 点击空白处隐藏键盘的几种方法   IOS开发中经常要用到输入框,默认情况下点击输入框就会弹出键盘,但是必须要实现输入框return的委托方法才能 ...

随机推荐

  1. jmeter使用Java请求二

    继承 AbstractJavaSamplerClient类来实现jar编辑 来写jmeter测试脚本 将如下两个包引入Java项目: ApacheJMeter_core.jar ApacheJMete ...

  2. JS基础笔记汇总

    JS基础笔记最全的汇总 javascript介绍以及起源目录1.变量和常量的知识2.基本数据类型3.运算符4.基本数据类型间的转换5.流程控制语句 一.javascript介绍以及起源 js一种直译型 ...

  3. eNSP报错41解决方法

    1.点击右上角的菜单 2.工具>>注册设备,全部勾选,然后注册,就行了.

  4. CToolsDetachBehaviors

    CTools dispatches the event "CToolsDetachBehaviors" when the modal gets closed. Careful th ...

  5. RSS经典教程

    RSS经典教程 作者:OLD HELPSoldhelps@126.com RSS 指 Really Simple Syndication(真正简易联合) RSS 使您有能力聚合(syndicate)网 ...

  6. laravel Auth的使用

    最新的文档是使用的 laravel/jetstream 扩展包,旧版本中的 php artisan make:auth 命令在新版本中已不能用,但是此博客没有使用文档提供的扩展包,而是使用的是lara ...

  7. lsyncd-实时同步(镜像)守护程序

    本文作者: 五行哥 QQ: 1226032602 E-mail: 1226032602@qq.com 官方文档 https://axkibe.github.io/lsyncd/ https://git ...

  8. pip备份、安装requirements.txt中的包和anaconda的安装(linux)

    pip备份.安装requirements.txt中的包和anaconda的安装(linux)   1. 从已有的环境中,备份已经安装的package pip freeze > requireme ...

  9. DCU-GPU

  10. DIV CSS遮罩层(弹窗窗口)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...