C++ 输入输出流之字符串流

原创 2013年12月02日 17:38:55
  • 字符串流介绍
    • 字符串流以内存中用户定义的字符数组(字符串)作为输入输出对象。
    • 字符串流也有缓冲区,当缓冲区满了(或遇到换行符),流缓冲的数据一起存入字符数组。
  • 头文件<strstream>
  • 1. 建立输出字符串流对象
    • ostrestream的构造函数:
      • ostrestream::ostrstream(char *buffer, int n, int mode = ios::out);
      • buffer指字符串数组首元素的指针
      • n是流缓冲区的大小
      • iost::out是默认值
    • 建立输出字符串流对象与字符数组的关联:
      • ostrstream strout(cStr1, 20)

  • 2. 建立输入字符串流对象
    • istrstream的构造函数:
      • istrstream::istrstream(char *buffer)
      • istrstream::istrstream(char *buffer, int n)
      • buffer是指向字符数组首元素的指针
      • n是缓冲区的大小
    • 建立输入字符串流对象与字符数组的关联
      • istrstream strin(cStr2);    // 将cStr2字符数组中的全部数组作为输入字符串流的内容
      • istrstream strin(cStr2);    // 将cStr2字符数组中的全部数组作为输入字符串流的内容

  • 3. 建立输入输出字符串流对象
    • strstream的构造函数
      • strstream::strstream(char *buffer, int n, int mode)
    • 建立输入输出流对象鱼字符串流流的关联
      • strstream strio(cStr3, sizeof(cStr3), ios::in|ios::out);
      • 以字符数组cStr3为输入输出对象,缓冲区大小与数组cStr3相同
  • 举例:
    #include <strstream>
    #include <iostream>
    using namespace std;
    
    int main()
    {
        char cStr[50] = "12 34 65 -23 -32 33 61 99 321 32";
        int nArray[10];
        cout << "Old cStr: " << cStr << endl;
    
        // 以字符串cStr作为输入流,建立strin与cStr的关联,缓冲区大小为字符串cStr的大小
        istrstream strin(cStr, sizeof(cStr));
        int i, temp;
        for (i = 0; i < 10; i++)
            strin >> nArray[i];
    
        // 输出读入的数组
        cout << "nArray: ";
        for (i = 0; i < 10; i++)
            cout << nArray[i] << " ";
        cout << endl;
    
        for (int i = 0; i < 5; i++)  // 数组旋转
        {
            temp = nArray[i];
            nArray[i] = nArray[9 - i];;
            nArray[9-i] = temp;
        }
    
        ostrstream strout(cStr, sizeof(cStr));
        for (i = 0; i < 10; i++)
            strout << nArray[i] << " ";
        strout << endl;             // 加入'\0'
        
        cout << "New cStr: " << cStr << endl; // 输出最新的cStr
    
        return 0;
    }
扩展阅读:
  1. stringstream实现字符字符类型转换
  2.  C/C++字符串流(stringstream)
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C++里string类字符串输入的用法(不断补充)

 学C++的时候,这几个输入函数弄的有点迷糊;这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行) 1、cin ...

item 23: 理解std::move和std::forward

本文翻译自《effective modern C++》,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 根据std::move和std::forward不能做什么来熟悉它们是一个好办法。s...
  • boydfd
  • boydfd
  • 2016-03-07 20:32
  • 1769

C++ 文件读写 字符输出 字符串输出

文件读写,将文件内容按照字符读出,另外也可以将内容赋值给字符串输出。 #include #include #include using namespace std; int main() {...

c/c++字符、字符串输入输出

1. scanf 1.1 输入字符 char ch; scanf("%c",&ch); 注意字符前面的取地址符 1.2 输入字符串 char str[15]; scanf("%s",s...

C++中的字符串流

字符串流stream,用来做数据类型转换;和C以及C++11实现对比。

c++ 字符串流 sstream(常用于格式转换)

原文:http://blog.163.com/zhuandi_h/blog/static/180270288201291710222975/ 使用stringstream对象简化类型转换 C++标准库...
  • eldn__
  • eldn__
  • 2015-04-04 18:17
  • 1809

C++基础::字符串流(stringstream)

1. ss.clear() vs ss.str("") 2. str() 成员方法的返回值类型 3. 字符串流和文件流的交互 4. 字符串流的功能

利用stringstream实现数据类型的转换。

stringstream是一个串的输入输出流类,它继承自iostream和stringstreambase。用VC编程时经常需要在字符串和各种基本数据类型之间进行转换,虽然标准库有提供itoa或ato...
  • danky
  • danky
  • 2007-01-16 02:47
  • 3339

字符流stringstream详解

以下内容转自:http://www.usidcbbs.com/read-htm-tid-1898.html C++引入了ostringstream、istringstream、stringstrea...

【C/C++学院】0826-文件重定向/键盘输入流/屏幕输出流/字符串输入输出/文件读写简单操作/字符文件读写二进制与文本差别/get与getline挖掘数据/二进制与文本差别/随机位置/多线程初级

文件重定向 [java] view plaincopy #include   using namespace std;  ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)