MyException - 我的异常网
当前位置:我的异常网» C语言 » 求解一个关于getc与putc的有关问题

求解一个关于getc与putc的有关问题

www.MyException.Cn  网友分享于:2013-02-20  浏览:7次
求解一个关于getc与putc的问题。
本帖最后由 aaaabb825 于 2013-02-17 18:51:53 编辑
今天看书实践时遇到个问题,一个命令行参数的程序,可输出一个很怪。我百度了半天也没结果,来请教各位前辈,我也查了getc的原型,那个宏定义搞了半天有点懂了,没办法,我们学校软件大一上半学期还没有开C语言课,所以也找不到老师请教。输出一个内容为123456789的文本时,输出却是这样,都是笑脸。。。ASCIII为1的那个字符,怎么回事呢?请教前辈们
#include<stdio.h>
#include<stdlib.h>

int main(int argc,char *argv[])
{
int ch;
FILE *fp;
int count=0;

if(argc!=2)
{
printf("Usage:%s filename\n",argv[0]);
exit(1);
}
if((fp=fopen(argv[1],"r"))==NULL)
{
fprintf(stderr,"Can't open the file!\n");
exit(1);
}
while(ch=getc(fp)!=EOF)
{
putc(ch,stdout);
count++;
}
if(fclose(fp)!=0)
fprintf(stderr,"Error in closing files.\n");
printf("File %s has %ld characters\n",argv[1],count);

return 0;
}

代码就是这样了,难道是我机子有毛病了?想请各位前辈帮忙看看,谢谢!
getc putc

------解决方案--------------------
while((ch=getc(fp))!=EOF)
------解决方案--------------------
ascii  码的 1~9 对应的int 是 48~57

google ascii 码表

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有