读书人

为什么有一部分不输出啊解决思路

发布时间: 2012-02-21 16:26:23 作者: rapoo

为什么有一部分不输出啊????
#include <iostream>
#include <string>
using namespace std;

void main()
{
int aCnt=0, eCnt =0 , iCnt =0 , oCnt=0 ,uCnt=0,
theCnt=0, itCnt=0, wdCnt=0, notVowel=0;

string buf, the( "the "),it( "it ");

while( cin> > buf){
++wdCnt;
cout < <buf < < ' ';
if(wdCnt%12==0)
cout < <endl;

if(buf==the||buf== "The ")
++theCnt;
else
if(buf==it||buf== "It ")
++itCnt;

for (int ix=0;ix <buf.size();++ix)
{
switch(buf[ix])
{
case 'a ': case 'A ': ++aCnt;break;
case 'e ': case 'E ': ++eCnt; break;
case 'i ': case 'I ': ++iCnt; break;
case 'o ': case 'O ': ++oCnt; break;
case 'u ': case 'U ': ++uCnt; break;
default: ++notVowel; break;
}
}
}
cout < < "\n\n "
< < "words read: " < <wdCnt < < "\n\n "
< < "the/The: " < <theCnt < < '\n '
< < "it/It: " < <itCnt < < "\n\n "
< < "non-vowels read: " < <notVowel < < "\n\n "
< < "a: " < <aCnt < < '\n '
< < "e: " < <eCnt < < '\n '
< < "i: " < <iCnt < < '\n '
< < "o: " < <oCnt < < '\n '
< < "u: " < <uCnt < <endl;
}


\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
cout < < "\n\n "
< < "words read: " < <wdCnt < < "\n\n "
< < "the/The: " < <theCnt < < '\n '
< < "it/It: " < <itCnt < < "\n\n "
< < "non-vowels read: " < <notVowel < < "\n\n "
< < "a: " < <aCnt < < '\n '
< < "e: " < <eCnt < < '\n '
< < "i: " < <iCnt < < '\n '
< < "o: " < <oCnt < < '\n '
< < "u: " < <uCnt < <endl;

为什么这一部分的都不输出啊,就输出输入的英文,后边的 什么个数了都不输出
这是怎么了

[解决办法]
ctrl + z 再回车
[解决办法]
你肯定需要告诉程序你的while循环什么时候结束呀!
[解决办法]
很显然,你按回车后
cin> > buf并没有返回false
这取决于cin的实现
记住怎么做就行了,没必要深究吧


[解决办法]
。。。。。。。。。。。。
可以查查ctrl+回车,呵呵,记得是换行的意思

读书人网 >C++

热点推荐