首先你要知道while(cin>>word)语句检测的是表达式返回的流cin,也即是检测流的状态。
因为你的嵌套while(cin>>word){}是以Ctrl+z结束的,此时cin无效,即以后的while(cin>>word){}条件都是不成立,所以不会执行。
如果想正确执行的话,加上cinclear();把流cin设置为有效就可以了
while(1){
while(cin>>word)
{
textpush_back(word);
}
cinclear();///设置流cin有效
for(size_t a(0);a<textsize();++a)
{
cout<<text[a]<<endl;
}
}
完全可以的。例如,以下的二重循环程序运行的结果:
#include<stdlibh>
voidmain(void)
{inti,j=5;for(i=0;i<3;i++,j=5)
{while(j--)printf("");printf("\n");}
system("pause");}
是你的输入乱了的问题,你在最外层while中有一个cin>>a; 此时你需要先输入一个a的值,按照你的结果显示,你输入的是1,此时a=1,stack[0]=1;然后进入第二个循环,cin>>ch1>>a>>ch2; 你输入了 + 2,此时ch1='+',a=2,但是还需要输入ch2,所以输入1+2后不输出结果,因为ch2还未进行输入,直到你输入0之后此时ch2=0;stack[1]=2。
然后进行输出cout<<ch1<<" "<<a<<" "<<ch2<<endl;也就是你结果中的+ 2 0;最后进行stack数组元素相加输出就是1+2,输出3。
循环语句,分两个部分。 一部分是循环控制语句。 一部分是循环体。 for 循环: 循环控制语句有三个表达式 第一个表达式, 只执行一次,在循环所有其他代码执行前执行。 第二个表达式,每次循环体执行前,先执行,并与比较0(false) 比较非0 执行循环, 是0不执行结束循环 第三个表达式,每次循环体执行后执行一次。 while 循环: 循环控制语句只有一个表达式 每次循环体执行前先执行,并把结果和0(false) 比较,非0执行循环,是0 不执行结束循环。 do while循环: 只有一个表达式 ,先执行一遍循环体,然后执行表达式,并把结果和0(false) 比较,非0 执行循环,是0 不执行结束循环。 嵌套循环的内存循环,只是循环体中的一个语句。 执行顺序是:和外层循环的其他语句一起,按照顺序执行。 for 循环:while 循环: 先执行条件表达式,如果结果非0,执行循环体。 do while 循环,先执行循环体,然后执行条件表达式,如果结果非0,继续执行循环体。
以上就是关于关于双重while嵌套的问题全部的内容,包括:关于双重while嵌套的问题、c语言里,for循环里能嵌套while循环吗、c++两个while循环嵌套问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)