zoukankan      html  css  js  c++  java
  • 串流类(istrstream)输入行为的探讨

    首先,istrstream类的两个构造函数:

      istrstream::istrstream(const char* str);

      istrstream::istrstream(const char* str, int size);

    接着,看下面一段代码:

     1 #include<strstrea.h>
     2 #include<iostream.h>
     3 
     4 void main()
     5 {
     6     char str[100]="I am a student.
    ";
     7     char a;
     8     istrstream  ai(str, 5);
     9 
    10     ai>>a;
    11     cout<<a<<endl;
    12 }

      当size=0时;

        以n表示第十行代码(ai>>a)的重复次数:

        n=1,   输出:I;

        n=2,   输出:a;

        n=3,   输出:m;    

        n=4,   输出:a;

        n=5,   输出:s;

        n=11,  输出:t;

        n=12,  输出:.;

        n=13,  输出:.;     //这位字符是' ' ;(仅仅看除去空格、制表符、换行等后的字符)

        n=14,  输出:.;  //这位字符是’ ‘ ;

        n=15,  输出:.;  //这位字符是'' ;

        n=16,  输出:.;  //这位字符是'' ;

      当size>0时;

    1. size = 3;

          n=1('I');

          n=2('a');

          n=3('a');

          n=4('a');

        2.  size = 5;

          n=3('m');

          n=4('m');

          n=5('m');

        3.  size = 6;

          n=3('m');

          n=4('a');

          n=5('a');

          n=6('a');

    综上:

    1. 不论size是否大于0,二者都只输入除去空格、回车、制表符、换行等以后的字符;如果输入中遇到空格等一类字符,程序自动以后面第一个非空格一类字符代替(对于size>0的情况,这句话指size还没有起作用时候);
    2. 当size = 0, 当输入次数大于有效字符(除去空格一类字符)数时,后面的输入保持不变,维持在最有一个有效字符的输入状态;
    3. 当size>0时,
      1. size控制位数(此“位数”包括所有字符,甚至是空格、回车、制表符、换行等符号),当输入次数超过size后,size肯定就开始发挥限制输入的作用了;
      2. size 可能在输入次数小于size大小的时候就开始发挥限制作用了;("I am a student." , 此情况,如果size = 5, 那么在第三次输入得到'm'后size 就开始发挥输入限制作用了)
      3. 当输入被size限制后,后面再输入的字符维持在最后一个有效字符的状态;
  • 相关阅读:
    httprunner 3.x--参数化parameters(参数和值多对一,多对多,一对一等),csv文件
    httprunner 3.x--variables变量和声明(变量和值一一对应)
    httprunner 3.x 带参数接口测试(get方法)
    appium安装(windows7)
    httprunner 3运行报错AttributeError: module 'allure' has no attribute 'severity_level'
    jmespath用法
    httprunner3.x 测试用例应用/变量传递(测试用例编写)
    Python框架之Tornado(一)
    Python之Web框架
    Python 装饰器(进阶篇)
  • 原文地址:https://www.cnblogs.com/richard-c-java/p/3292528.html
Copyright © 2011-2022 走看看