关闭

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

标签: 字符串流
2010人阅读 评论(0) 收藏 举报
分类:
  • 字符串流介绍
    • 字符串流以内存中用户定义的字符数组(字符串)作为输入输出对象。
    • 字符串流也有缓冲区,当缓冲区满了(或遇到换行符),流缓冲的数据一起存入字符数组。
  • 头文件<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;
    }
扩展阅读:
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:99655次
    • 积分:2087
    • 等级:
    • 排名:第18236名
    • 原创:95篇
    • 转载:86篇
    • 译文:0篇
    • 评论:0条