从键盘读取一行的方法

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. allure环境配置生成测试报告

    一.pycharm中安装下载allure:pip install allure-pytest.或者设置里面添加allure-pytest搜索安装 二.电脑中配置allure系统环境变量: allure ...

  2. fpga always赋值

  3. 关于给widget添加属性

    在django中,我们通过修改Form/ModelForm的初始化函数__init__修改表单的显示样式,其中修改widget的属性操作和字典操作一致. 1.给widget添加属性 说明:这是在不影响 ...

  4. 'xxx' must be unique because it is referenced by a foreign key.

    'xxx' must be unique because it is referenced by a foreign key. 原因:在绑定外键时,对应的外键字段的没有设置成唯一. 说明:在定义字段时 ...

  5. javascript【应用】debounce和throttle

    debounce防抖 在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时:典型的案例就是输入搜索:输入结束后n秒才进行搜索请求,n秒内又输入的内容,就重新计时. <div id=& ...

  6. WPF 轨迹动画

    1.后台 public MainWindow() { InitializeComponent(); /// <summary> /// Window2.xaml 的交互逻辑 /// < ...

  7. Xcode基础文件概念

    Xcode基础概念 Schema.Target.Project 和 Workspace 是组成一个 Xcode 工程最核心的单元,也是我们首先需要理解的部分. Target Target 是我们工程中 ...

  8. 淘淘商城项目技术点-8:vsftpd

    FTP(文件传输协议)全称是:Very Secure FTP Server.   Vsftpd是linux类操作系统上运行的ftp服务器软件. vsftp提供三种登陆方式:1.匿名登录  2.本地用户 ...

  9. spider_ip代理

    title: spider_ip代理 author: 杨晓东 permalink: spider_ip代理 date: 2021-10-02 11:27:04 categories: - 投篮 tag ...

  10. React 事件绑定this指向

    1. 推荐:使用class的实例方法 class Hello extends React.Component { handleClick = () => { this.setState({ .. ...