天下3粉色玻璃弓:关于C++数组的某个小问题

来源:百度文库 编辑:神马品牌网 时间:2024/05/12 15:55:38
#include <strstream.h>
void main()
{char str[]="1 2 3 4 5 6 7 8 9";
char c;
for(int i=0;str[i];i++)
{istrstream in(&str[i]);
in>>c;
cout<<c;
}
cout<<endl;
}
问一下为什么运行后的结果是:
12233445566778899
而不是:
1 2 3 4 5 6 7 8 9
在数组str中是怎么存储的?
大体知道了,就是对空格忽略。
但是是istrstream 类对象忽略空格,还是>>对空格忽略
请再讲的细一点,谢谢了

把in>>c; 改成in.get(c);
就可以了.

>>,该输入对空格忽略,直到非空格,也就是你的i值后面的一位的值。
get(c)按字符读入.

数组str中,每个字符占一个字节,共17个字节,最后用\0作为字符串结束。也就是str占了18个字节

str存得没错,问题是你没有把str数组原样输出。istrstream类对象in应该是忽略空格的。