在c++中,标准输入string时cin 与getline两个函数之间的区别

时间:2021-08-03 19:39:44

cin:

  cin函数是标准库的输入函数,在读取string时遵循以下规则:

1)读取并忽略开头所有的空白符(包括空格、换行符、制表符)。

2)读取字符直到遇到空白符,读取终止。

例如:

当输入的是“    你好  朋友”,输出仅为“你好”。

getline:

  getline函数接受两个参数:一个为输入流的对象,一个为string对象。

getline函数从输入流的下一行进行读取,并保存内容到string对象中,和cin

不同的是,它不会忽略开头的空白符,并且它会读取这一行所有的内容直到遇

到换行符为止。

ps: getline函数有一个缺陷,就是一旦遇到换行符就会立马停止读取。

例如:

#include "stdafx.h"
  #include<iostream>
  #include<string>
  using namespace std;
  int _tmain(int argc, _TCHAR* argv[])
  {
      string line;
      cin >> line;
      cout << line;
      string line1;
      getline(cin, line1);
      cout << line1;
      while (1){}
      return 0;
  }

运行上一段代码,你就会理解getline函数一些要注意的地方。

 

在c++中,标准输入string时cin 与getline两个函数之间的区别的更多相关文章

  1. js中 var functionName &equals; function&lpar;&rpar; &lbrace;&rcub; 和 function functionName&lpar;&rpar; &lbrace;&rcub; 两种函数声明的区别

    js中有两种声明函数的方法,分别为: var functionOne = function() { // Some code }; function functionTwo() { // Some c ...

  2. js中 var functionName &equals; function&lpar;&rpar; &lbrace;&rcub; 和 function functionName&lpar;&rpar; &lbrace;&rcub; 两种函数声明的区别 &lpar;译&rpar;

    *中看到了很久以前问的一个关于函数声明的问题,问题对函数剖析的特别深.这里翻译了一下组织成一篇小博文,加深一下对这两种声明方式的印象.虽是老调重弹,但是只要能帮助理解问题,不管 ...

  3. Android 中this、getContext&lpar;&rpar;、getApplicationContext&lpar;&rpar;、getApplication&lpar;&rpar;、getBaseContext&lpar;&rpar; 之间的区别

    : 知之为知之,不知为不知是知也! 使用this, 说明当前类是context的子类,一般是activity application等; this:代表当前,在Activity当中就是代表当前的Act ...

  4. Python 中格式化字符串 &percnt; 和 format 两种方法之间的区别

    Python2.6引入了 format 格式化字符串的方法,现在格式化字符串有两种方法,就是 % 和 format ,具体这两种方法有什么区别呢?请看以下解析. # 定义一个坐标值 c = (250, ...

  5. mysql中的concat函数&comma;concat&lowbar;ws函数,concat&lowbar;group函数之间的区别

    一.CONCAT()函数CONCAT()函数用于将多个字符串连接成一个字符串.使用数据表Info作为示例,其中SELECT id,name FROM info LIMIT 1;的返回结果为+----+ ...

  6. hivesql中的concat函数&comma;concat&lowbar;ws函数,concat&lowbar;group函数之间的区别

    一.CONCAT()函数CONCAT()函数用于将多个字符串连接成一个字符串.使用数据表Info作为示例,其中SELECT id,name FROM info LIMIT 1;的返回结果为 +---- ...

  7. UML中依赖(Dependency)和关联(Association)之间的区别

    一般情况下,使用关联(association)来表示像类中的字段等.这个关系是始终存在的,因此你可以随时针对关联项进行访问调用,例如可以始终从 Customer 对象获取 Order 对象.但事实上它 ...

  8. java中对象多态时成员变量,普通成员函数及静态成员函数的调用情况

    /* 样例1: class Parent{ int num = 3; } class Child extends Parent{ int num = 4; } */ /* 样例2: class Par ...

  9. STL中使用reverse&lowbar;iterator时,如何正确使用erase函数

    假设有一个list容器,顺序存储了0-9一个10个整数.现在要使用reverse_iterator迭代器来查找值为8和5的元素,并且将这两个数删除.先来看以下的解决方法: #include <i ...

随机推荐

  1. Fragment配合RadioGroup实现点击切换布局

    这里用了 compile 'com.jakewharton:butterknife:7.0.1' compile 'org.greenrobot:eventbus:3.0.0' MainActivit ...

  2. nginx 下 bootstrap fa 字体异常问题

    server { listen 8082; # server_name 192.168.16.88; # root /home/ywt/workspace/kuF/web/statics; # aut ...

  3. Android第三方jar包ClassNotFind

    转载请注明http://www.cnblogs.com/vanezkw/archive/2012/06/25/2561393.html 相信很多朋友在使用第三方包时都遇到过此类问题.今天就此问题进行一 ...

  4. poj1159 dp最长公共子串

    //Accepted 204 KB 891 ms //dp最长公共子串 //dp[i][j]=max(dp[i-1][j],dp[i][j-1]) //dp[i][j]=max(dp[i][j],dp ...

  5. Java基础知识强化之IO流笔记76:NIO之 Channel(通道)之间的数据传输

    1. 在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel(译者注:channel中文常译作通道)传输到另外一个channel. (1)trans ...

  6. LoadRunner调用Java程序—性能测试-转载

    LoadRunner调用Java程序—性能测试   为了充分利用LoadRunner的场景控制和分析器,帮助我们更好地控制脚本加载过程,从而展现更直观有效的场景分析图表.本次将重点讨论LoadRunn ...

  7. &lbrack;wikioi&rsqb;数的划分

    http://wikioi.com/problem/1039/ 划分型DP.最终的思路是,F[i][j]表示i分成j份,如果分出来的有1,那么去掉1,就是F[i-1][j-1]:如果没有1,那就都减1 ...

  8. CLR via C&num; - Char&lowbar;String

    .NET中Char表示为16为的Unicode值,Char提供两个public const字段MinValue('\0',写成'\u0000'也是一样的)和MaxValue('\uffff'). Ch ...

  9. 微信小程序——页面之间传递值

    小程序页面传值的方式: 1.正向传值:上一页面 -->  下一页面 url传值 本地储存 全局的app对象 2.反向传值:下一页面 -->  上一页面 本地储存 全局的app对象 先说一下 ...

  10. Unity3D的坑系列:打包Assetbundle丢失Shader问题(贴图显示不了)

    从Unity4.2开始,为了减少首包大小,不会默认将所有Shader引擎加到游戏程序中,据Unity技术支持人员所说,Unity会将Shader引擎打包到Assetbundle资源中,但是我测试发现不 ...