c=cin.get() while(c!=EOF) 请问如何结束循环啊????(内有)

horisly 2004-11-23 04:05:07
请问我这个是如何结束程序的:


#include<iostream.h>
void main()
{ char c;
int line=0,word=0,ch=0;
int isword=0;
do {
c=cin.get();
if(c=='\n')
line++; //遇换行符行数+1
if(c!=' '&&c!='\t'&&c!='\n'){
//读到非间隔符
if(isword==0) word++;
//在单词的起始处给单词数+1
ch++; //字符数加+1
isword=1;
}
else isword=0; //读到间隔符
} while(c!=EOF);
cout<<"行数:"<<line<<endl;
cout<<"单词数:"<<word<<endl;
cout<<"字符数:"<<ch<<endl;
}
...全文
458 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
greenteanet 2004-11-24
  • 打赏
  • 举报
回复
Ctrl+Z
然后回车
surstar 2004-11-23
  • 打赏
  • 举报
回复
点" 管理"  就可以结帐了

  • 打赏
  • 举报
回复
到EOF就结束了(可以按一下ctrl-Z),也可以这么写

while(cin)
{
.......
}
horisly 2004-11-23
  • 打赏
  • 举报
回复
请问 如何结帐的??
(第一次提问)
horisly 2004-11-23
  • 打赏
  • 举报
回复
多一个主要是因为 输入了Ctrl + z 的字符
horisly 2004-11-23
  • 打赏
  • 举报
回复
哦 原来要在 大写 的状态下才可以的
redjackwong 2004-11-23
  • 打赏
  • 举报
回复
程序通过在vc++6.0编译环境下通过,按Ctrl+z可以正常结束。

但是
行数输出无法显示,修改为cout<<endl<<"行数:"<<line<<endl;就可以了;
字母数和单词数统计算法有误,都要多一个。

回答完毕
horisly 2004-11-23
  • 打赏
  • 举报
回复
怎么不行啊

我输入:
My name is Horisly.
I am from Guangdong.(Ctrl+z) 回车
可是后面还是可以继续输入啊???
newegg2002 2004-11-23
  • 打赏
  • 举报
回复
Ctrl+Z
然后回车
fansy007 2004-11-23
  • 打赏
  • 举报
回复
到EOF就结束了(可以按一下ctrl-Z),也可以这么写

while(cin)
{
.......
}

64,645

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧