首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

为什么会是死循环呢?各位牛人!

2013-03-21 
为什么会是死循环呢???求助各位牛人!!做C++primer第四版上的一个例题,统计ff、fl、fi的出现次数,小弟的程序,

为什么会是死循环呢???求助各位牛人!!
   做C++primer第四版上的一个例题,统计ff、fl、fi的出现次数,小弟的程序,在命令提示符里一次性输入
fff,然后回车,然后CRTL+Z,然后再回车,就死循环了。debug一下更加觉得莫名其妙,求助各位大神!!
        using namespace std;
char ch;
int cnt_ff=0,cnt_fl=0,cnt_fi=0;
while(cin>>ch){
while(ch=='f'){
if(cin>>ch){
    switch(ch){
        case 'f': 
    ++cnt_ff;
    break;
    case 'l': 
    ++cnt_fl;
    break;
    case 'i': 
    ++cnt_fi;
    break;
    default:
    int i=0;
i++;
    }
}
}
}
    cout<<"ff: "<<cnt_ff<<endl;
cout<<"fl: "<<cnt_fl<<endl;
cout<<"fi: "<<cnt_fi<<endl; 求助
[解决办法]


#include <iostream>
using namespace std;
int main()
{
 char ch;
 int cnt_ff=0,cnt_fl=0,cnt_fi=0;
 while(cin>>ch)//一次只能输入一个字符,然后回车,结束用Ctrl+Z
 {
 switch(ch)
 {
 case 'f': 
 ++cnt_ff;
break;
 case 'l': 
 ++cnt_fl;
 break;
 case 'i': 
 ++cnt_fi;
 break;
 default:
 break;
 }
 }
 cout<<"ff: "<<cnt_ff<<endl;
 cout<<"fl: "<<cnt_fl<<endl;
 cout<<"fi: "<<cnt_fi<<endl; 
 return 0;
}


不知道是不是你想要的
[解决办法]
引用:
CSS code?1234567891011121314151617181920212223242526272829#include <iostream>int main(){    using namespace std;    char ch;    int cnt_ff=0,cnt_fl=0,cnt_fi=0;    while(cin>>ch){        w……

没有死循环啊
[解决办法]
#include <iostream>
int main(){
    using namespace std;
    char ch;
    int cnt_ff=0,cnt_fl=0,cnt_fi=0;
    while(cin>>ch){
        while(ch=='f'){
            if(cin>>ch){//问题出在这一句,当你输入fff回车后,开始循环,将3个f从流中取完后,
                        //你又开始输入,这时你输入了一个^Z也就是流结束,但此时你上面while里
                        //的条件是为真的,就不停循环下去了,cin一直处在结束状态,不能接收字符
                switch(ch){
                    case 'f': 


                        ++cnt_ff;
                        break;
                    case 'l': 
                        ++cnt_fl;
                        break;
                    case 'i': 
                        ++cnt_fi;
                        break;
                    default:
                        int i=0;
                        i++;
                }
            }
        }
    }
        cout<<"ff: "<<cnt_ff<<endl;
    cout<<"fl: "<<cnt_fl<<endl;
    cout<<"fi: "<<cnt_fi<<endl;
}


[解决办法]
5楼上说的对,就是那死循环了。

热点排行