java中串流是什么_串流类(istrstream)输入行为的探讨

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

istrstream::istrstream(const char* str);

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

接着,看下面一段代码:

1 #include

2 #include

3

4 voidmain()5 {6 char str[100]="I am a student.\n";7 chara;8 istrstream ai(str, 5);9

10 ai>>a;11 cout<

当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' ;(仅仅看除去空格、制表符、换行等后的字符)

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

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

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

当size>0时;

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');

综上:

不论size是否大于0,二者都只输入除去空格、回车、制表符、换行等以后的字符;如果输入中遇到空格等一类字符,程序自动以后面第一个非空格一类字符代替(对于size>0的情况,这句话指size还没有起作用时候);

当size = 0, 当输入次数大于有效字符(除去空格一类字符)数时,后面的输入保持不变,维持在最有一个有效字符的输入状态;

当size>0时,size控制位数(此“位数”包括所有字符,甚至是空格、回车、制表符、换行等符号),当输入次数超过size后,size肯定就开始发挥限制输入的作用了;

size 可能在输入次数小于size大小的时候就开始发挥限制作用了;("I am a student." , 此情况,如果size = 5, 那么在第三次输入得到'm'后size 就开始发挥输入限制作用了)

当输入被size限制后,后面再输入的字符维持在最后一个有效字符的状态;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值