+ -
当前位置:首页 → 问答吧 → 关于摁y继续,摁n退出的问题

关于摁y继续,摁n退出的问题

时间:2011-12-11

来源:互联网

这是我的代码
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
int count=0 ,value,t=1;
char s;
while(t)
{
system("cls");
cout <<"Please input numbers:\n" ;
while (cin>>value)
if(value<=0)
++count;
cout <<"共有"<<count<<"个负数" ;
cout<<"继续循环输入Y,否则按任意键退出";
cin>>s;
if(s=='y')
t=1;
else
t=0;
}


return 0;
}

两个疑问: 第一 我输入数字的时候,只有在输入结束后后,摁下逗号,再摁下enter,才会出现有几个负数的语句,摁其他的都没用
第二就是,我改如何在判断一次输入后,选择y继续判断,其他键退出,虽然写了if的语句,但是没用还是会在输入y时退出

作者: struggle201_   发布时间: 2011-12-11

C/C++ code
int main()
{    
    int count=0 ,value,t=1;
    char s;
    while(t)
    {
        system("cls");
        cout <<"Please input numbers:\n" ;
        while (cin>>value)
            if(value<=0)
                ++count;
        
        //if(!cin)
        //{
            cin.clear();
            cin.ignore();
        //}

        cout <<"共有"<<count<<"个负数" ;
        cout<<"继续循环输入Y,否则按任意键退出";// 回车键/空格键这类键不行的
        
        cin>>s;
        
        if(s=='y')
            t=1;
        else
            t=0;
    }

    return 0;
}

作者: yisikaipu   发布时间: 2011-12-11

引用楼主 struggle201_ 的回复:两个疑问: 第一 我输入数字的时候,只有在输入结束后后,摁下逗号,再摁下enter,才会出现有几个负数的语句,摁其他的都没用
第二就是,我改如何在判断一次输入后,选择y继续判断,其他键退出,虽然写了if的语句,但是没用还是会在输入y时退出


1,不是按下逗号结束,而是按下不是表示整数的键就结束,比如按字母,小数点等符号。结束是因为cin认为你输入出错
2,cin出错了需要恢复状态,参考代码如上楼

作者: yisikaipu   发布时间: 2011-12-11

热门下载

更多