远山 发表于 2016-8-27 19:43:47

检测不到输入行结尾

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int main(void)
{
    int i = 0, j = 0;
    char ch;
    printf("Please enter some characters: \n");
    while((ch = getchar()) != EOF)
    {
      if(islower(ch))i++;
      if(isupper(ch))j++;
    }
    printf("%d%d", i, j);
    return 0;
}
如上,统计大写字母和小写字母的数量,但是就是没有办法检测到句子的结尾,运行不下去是怎么回事呢?求教。

18813974736 发表于 2016-8-27 20:24:46

while((ch = getchar()) != EOF)//判断是不是回车键——即换行符'\n'
改成:
while((ch = getchar()) != '\n')

lelen99 发表于 2016-8-27 20:28:51

EOF是文件结束标记,不是输入结束标记,楼上正解。

iszhuangsha 发表于 2016-8-27 20:32:23

#include <iostream>
#include <cctype>
using namespace std;

int main()
{
    int i = 0, j = 0;
    char ch;
    cout<<"please enter some characters:"<<endl;
        cin.clear();
        while((ch = getchar()) != EOF)
    {
      if (islower(ch))
                        i++;
                else
                        j++;
    }
    cout<<i<<' '<<j<<endl;
    return 0;
}

远山 发表于 2016-8-27 21:17:57

18813974736 发表于 2016-8-27 20:24
while((ch = getchar()) != EOF)//判断是不是回车键——即换行符'\n'
改成:
while((ch = getchar()) !=...

十分感谢!

远山 发表于 2016-8-27 21:18:37

lelen99 发表于 2016-8-27 20:28
EOF是文件结束标记,不是输入结束标记,楼上正解。

谢谢!

远山 发表于 2016-8-27 21:19:09

iszhuangsha 发表于 2016-8-27 20:32


感谢感谢{:10_254:}
页: [1]
查看完整版本: 检测不到输入行结尾