1、使用标准IO操作读写string对象

我们都知道,使用标准iostream操作来读写int ,double等内置类型的值,同样,我们也可以使用IO操作来读写string对象。

c++ code:

  #include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
cin >> s;//从输入流中读取字符序列到对象s
cout << s << endl;//输出对象s
system("pause");
return ;
}

这段程序首先定义了一个空的string对象,然后将标准输入找中的内容读取到对象s中,具体实现:在执行读取操作的时候,string对象会自动忽略开头的空白(如空格符、换行符、制表符等),并从第一个真正的字符开始读入,知道遇到下一个空白字符为止。因此,使用cin>>只能从标准输入中读取单个词。

如上所述,如果输入的是"  hello  word!  "(注意开头和结尾以及中间是空格),则输出的是hello。

2、使用getline()读取一行

有时候我们希望在最终的字符串中保留输入时的空白符,这时候应该用getline函数来替代原来的>>运算符。getline函数的参数是一个输入流和一个string对象,原型是:getline(cin,string对象),函数从给定的输入流中读入内容,直到遇到换行符为止,但是此时的换行符要被读入,然后把所读入的内容存到string对象中,但此时不存入最后那个换行符。getline只要遇到换行符就停止读入并且返回string对象,哪怕一开始输入就是换行符也是如此,只不过会返回一个空的string对象。和输入运算符一样,getline也会返回它的流参数,所以可以用getline的结果作为条件。

c++ code:

 #include<iostream>
#include<string>
using namespace std;
int main()
{
string line;//每次读入一整行,知道遇到换行符结束读入
while (getline(cin,line))
if (!line.empty())
cout << line << endl;
system("pause");
return ;
}

欢迎评论!

c++string标准输入和getline()整行读入的更多相关文章

  1. C/C++如何整行读入字符串?

    在写代码的过程中,经常要一行一行的读入字符串进行处理,这里我总结了一些方法,供大家参考. 方法一:scanf()读入char[] 使用方法: ]; scanf("%[^\n]",& ...

  2. c++ string类使用及用string类解决整行字符串输入

    下面随笔给出c++ string类使用及用string类解决整行字符串输入. string类 使用字符串类string表示字符串 string实际上是对字符数组操作的封装 string类常用的构造函数 ...

  3. string行读入&&文件输入

    普通读入的时候会以空格作为分隔符 直接用cin>>s读入,此时可以直接处理文件尾的情况 text代码: #include <iostream>#include <cstd ...

  4. c程序设计语言_习题1-16_自己编写getline()函数,接收整行字符串,并完整输出

    Revise the main routine of the longest-line program so it will correctly print the length of arbitra ...

  5. getline的字符串读入

    也许是最近模拟题打多了的缘故,我发现自己渐渐变得比较毒瘤起来,当然这也是有一定的好处的,因为从中我也学到了一些处理字符串的正确姿势,今天我们就来讲一 讲如何用函数getline来读入一整行字符串进行处 ...

  6. 按行读入xml文件,删除不需要的行 -Java

    删除挺麻烦的,这里其实只是把需要的行存到arraylist中再存到另一个文件中 import java.io.BufferedReader;import java.io.BufferedWriter; ...

  7. c# winform DataGridView单击选中一整行,只能单选,不能选择多行,只能选择一行

    设置DataGridView的属性SelectionMode为FullRowSelect 这样就使DataGridView不是选择一个字段,而是选择一整行了 设置DataGridView的属性Mult ...

  8. Java-map-第一题 (Map)利用Map,完成下面的功能: 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队。如果该 年没有举办世界杯,则输出:没有举办世界杯。 附:世界杯冠军以及对应的夺冠年份,请参考本章附录。 附录

    第一题 (Map)利用Map,完成下面的功能: 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队.如果该 年没有举办世界杯,则输出:没有举办世界杯. 附:世界杯冠军以及对应的夺冠年 ...

  9. xcode 设置快捷键 整行上下移动

    设置整行代码上下移动:找到Xcode中的自带的配置文件:/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/ ...

随机推荐

  1. 关于zepto 选择特定值的input 报错问题

    zepto 选择特定值的input  时,需要用单引号或双引号引用这个特定值 否则 报错

  2. MFC中利用Opencv与C++抓取摄像头进行人脸识别(Mat)

    原文:http://blog.csdn.net/mr_curry/article/details/51098311 第一次写博客哈哈,有些小激动,还请各位大神多多包涵~ 最近的项目需要用到人脸识别,作 ...

  3. dubbo学习总结二 服务端

    服务端主要执行对底层数据库的操作 主要分层为 api +dao+ filter+ util+... 首先 dubbo 服务端有一个dubbo配置文件 dubbo:application 定义应用名称 ...

  4. python vscode在centos下安装

    对于centos则如下: sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh -c 'echo -e ...

  5. 【Leetcode】【Medium】Construct Binary Tree from Preorder and Inorder Traversal

    Given preorder and inorder traversal of a tree, construct the binary tree. Note:You may assume that ...

  6. 面向对象编程——parent—this

    PHP5 中使用 parent::来引用父类的方法. parent:: 可用于调用父类中定义的成员方法. parent::的追溯不仅于直接父类. PHP5 中为解决变量的命名冲突和不确定性问题,引入关 ...

  7. June 23rd 2017 Week 25th Friday

    Life doesn't get easier, you just get stronger. 生活从未变得轻松,是你在一点一点变得坚强. So in the same way we can get ...

  8. IOS UIWebView(浏览器控件)

    什么是UIWebViewUIWebView是iOS内置的浏览器控件系统自带的Safari浏览器就是通过UIWebView实现的 UIWebView不但能加载远程的网页资源,还能加载绝大部分的常见文件h ...

  9. BZOJ2438:[中山市选2011]杀人游戏(强连通分量)

    Description 一位冷血的杀手潜入 Na-wiat,并假装成平民.警察希望能在 N 个人里面,查出谁是杀手.警察能够对每一个人 进行查证,假如查证的对象是平民,他会告诉警察,他认识的人, 谁是 ...

  10. VS 2013 scanf 报错问题

    在VS2013 用C/C++编码时 使用scanf 会出现如下错误信息: 解决方法如下: 1. 在工程文件名出右击鼠标打开快捷菜单,找到“属性”选项,进入项目属性页面 2. 进入属性页面,找到“配置属 ...