美文网首页
C++中关于输入流的重定向问题

C++中关于输入流的重定向问题

作者: 飞天的小猫 | 来源:发表于2019-08-04 18:07 被阅读0次

做编程题的时候有时候会遇到这样的输入要求:“第一行为多个数字,数字之间用空格分离,第二行为balabala”。由于我们不知道第一行有多少个输入数字,对于c++编程语言来说,传统方案是采用字符串或者string来获取第一行的输入,然后自己写一个字符串处理函数将字符串中的数字分离出来,存储在数组或者vector容器中进行后续处理。但是在短时间内写这么一个函数比较麻烦,好在C++提供了一个sstream类,可以方便的将输入的字符串进行重定向到其他的数据结构中,具体使用方法如下:

首先声明库文件:


#include <iostream>

#include <vector>

#include <string>

#include <sstream>

using namespace std;

然后给出一个范例,显示如何将一行输入的字符串重新定向到一个vector容器中去:


int main()

{

    //定义输入流字符串

    string inputStream;

    //将一行的输入写入到输入流字符串中去

    getline(cin,inputStream);

    //定义重定向输入流stringin,并将字符串inputStream中的内容重定向到stringin中去

    stringstream stringin(inputStream);

    int num;

    //定义接收输入的int容器

    vector<int> a;

    //将输入流重新写入int容器中进行后续处理

    while(stringin>>num){

        a.push_back(num);

    }

    //打印容器中的元素

    for(auto r:a){

        cout<<r<<endl;

    }

    return 0;

}

程序的执行结果如下:

重定向流程序执行结果,第一行为输入的字符串,后面n行为vector中的元素换行输出的结果。

参考博客:https://blog.csdn.net/zdlnlhmj/article/details/79462770

相关文章

  • C++中关于输入流的重定向问题

    做编程题的时候有时候会遇到这样的输入要求:“第一行为多个数字,数字之间用空格分离,第二行为balabala”。由于...

  • Linux学习笔记3-管道符、重定向与环境变量

    输入输出重定向 输入重定向是指把文件导入命令中,而输出重定向则是指把原本要输出到屏幕的数据信息写入到指定文件中。输...

  • linux系统高级命令进阶

    输出重定向 输入重定向 <;将文件导入到命令中wc -l < /etc/passwd 管道符 |;将前一个文件的输...

  • Django自定义登陆注册

    先设置路由 视图函数 模型类 后台 forms表单 模板 问题总结 一开始重定向的问题,关于重定向:重定向到一个页...

  • Moved Permanently

    关于下载文件中包含重定向问题的解决方案。之前下载文件没问题,但是今天遇到一个下载文件里包含重定向,还是用之前的下载...

  • Linux常用指令

    1. 常用命令——数据流、管道数据流:输入流输出流标准的错误输出流重定向:改变数据的流向(一般重定向到文件中) 重...

  • Ninetheen Day(IO基本概念)

    输入流:进入Java程序里面输出流:从Java程序输出 inputstream:输入流outputstream:输...

  • IO 概述

    对于java来说输入输出问题,java见它抽象成流对象来解决. IO流在java中从输入输出角度分类: 输入流 输...

  • Linux重定向与管道

    1.重定向概述 1.1什么是重定向 将原本要输出到屏幕的数据信息,重新定向到某个指定的文件中 1.2进程将从标准输...

  • Linux 管道符、重定向与环境变量。

    1输入输出重定向 标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可从其他文件或命令中输入。标准输...

网友评论

      本文标题:C++中关于输入流的重定向问题

      本文链接:https://www.haomeiwen.com/subject/byvydctx.html