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

求立,要求使用EOF结束,但是发生了很纠结的事

2013-01-07 
求破,要求使用EOF结束,但是发生了很纠结的事如果把PRINTF放入WHile似乎在连续的输入中输出是衔接的(不是分

求破,要求使用EOF结束,但是发生了很纠结的事
如果把PRINTF放入WHile似乎在连续的输入中输出是衔接的(不是分别多次),好像是循环了
如果放在WHILE外边,则不会有输出结果,闹了两个钟头了
代码如下,求修改
#include <stdio.h>
int main()
{
    char s;
    int let=0;
    int dig=0;
    int oth=0;
    int spa=0;
    while(( s=getchar() )!= EOF )
    {
        if((s >= 'a' && s <= 'z')||( s >= 'A' && s <= 'Z'))
        {
            let++;
        }
        else if(s==' ')
        {
            spa++;
        }
        else if(s >= '0' && s <= '9')
        {
            dig++;
        }
        else
        {
            oth++;
        }
    }
    printf("%d %d %d %d\n",let,dig,spa,oth);
}
 输入一个字符串,统计此字符串中字母、数字、空格和其它字符的个数(禁用库函数,要求可以连续输入,以EOF结束)


[解决办法]
求立,要求使用EOF结束,但是发生了很纠结的事
输入CTRL+Z+空格 退出
[解决办法]
http://www.cnblogs.com/zjfdbz/archive/2011/12/17/2291233.html
[解决办法]
你在


if(s == '\n')
{
     printf("%d %d %d %d\n",let,dig,spa,oth);
     let=0;
     dig=0;
     oth=0;
     spa=0;
}

后面加个else,像这样

if(s == '\n')
{
     printf("%d %d %d %d\n",let,dig,spa,oth);
     let=0;
     dig=0;
     oth=0;
     spa=0;
}
else
{
    if((s >= 'a' && s <= 'z')
[解决办法]
( s >= 'A' && s <= 'Z'))
{
    let++;
}
            else if(s==' ')
   {
spa++;
           }
   else if(s>='0' && s<='9')
           {
dig++;
   }
   else
  {
oth++;
  }
}

热点排行