怎么测试?

longyuhen 2006-10-04 10:51:02
在下面的情况下怎么测试一个C程序:
有while((ch=getchar())!=EOF){
……
……}
printf("%d\n",test);
统计输入的字符中的数字个数,但是我输入如456 uerowj后回车后却出现不了结果,怎么解决呢?谢谢
...全文
245 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
helanshan 2006-10-05
  • 打赏
  • 举报
回复
自己定义一个结束标志或一个特殊字符,比如%¥#等。。
xuhai8848 2006-10-05
  • 打赏
  • 举报
回复
有两个解决办法,办法一是把while((ch=getchar())!=EOF)改为while((ch=getchar())!='\n'),程序遇到回车自然就结束循环并显示统计信息
办法二是在循环语句中加一句 if(ch=='\n') break;用来跳出循环,因为当循环条件为=EOF时,即使你按下回车此时程序仍旧在循环体内并等待getchar()函数继续输入字符,循环体后的程序都不会执行
longyuhen 2006-10-05
  • 打赏
  • 举报
回复
还是谢谢了……
Jokar 2006-10-04
  • 打赏
  • 举报
回复
TC不知道该如何结束输入了~ 帮不上忙了
longyuhen 2006-10-04
  • 打赏
  • 举报
回复
呵呵,ctrl+z不可以的,我用的是WIN-TC,是TURBO的内核,,?????
Jokar 2006-10-04
  • 打赏
  • 举报
回复
原来是这样呀~

想结束时 按 ctrl+z 就行了~(VC的话)
longyuhen 2006-10-04
  • 打赏
  • 举报
回复
system("pause");这句也有,还是在运行后出现的黑色界面里面输入一个测试语句后回车没有反应:
我认为是EOF出了问题,EOF是文件结束标志,可是我在测试的时候输入一句简单的字符串后回车,并不代表就是文件结束了,因为对于一般的系统来将EOF的数值是-1,那么这该怎么解决呢?谢谢
Jokar 2006-10-04
  • 打赏
  • 举报
回复

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


int main(void)
{
int iCntDigit = 0, iChInput;

while ((iChInput = getchar()) !=EOF)
{
if (isdigit(iChInput))
{
iCntDigit ++;
}
}

printf("%d\r\n", iCntDigit);

system("pause"); // 很可能是没有这句~

return 0;
}

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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