我是C语言初学者,它的错出在哪?

wuqizhi 2004-05-06 10:31:35
要求统计一个ASC文件的行数。
#include<stdio.h>
main()
{
FILE *fp;
int n=0;
char c;
clrscr();
if((fp=fopen("f1.txt","r"))==NULL) exit(0);
while(!feof(fp))
{ c=fgetc(fp);
if(c=='\0') n++;
}
printf("%d",n+1);
fclose(fp);
getch();
}
...全文
23 12 点赞 打赏 收藏 举报
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Alkaid 2004-05-06
估计是getch把printf盖住了。 printf加个\n试试
  • 打赏
  • 举报
回复
xiaoru806 2004-05-06
不好意思,我发的代码里最后多了一个}号
我也是一个初学者,共同学习。
  • 打赏
  • 举报
回复
xiaoru806 2004-05-06
#include"stdio.h"
main()
{int i=0;
char *str;
FILE *fp;
if((fp=fopen("文件的路径","r"))==NULL)
{printf("指定文件不存在");exit(0);}
while(!eof(fp))
{fgets(str,3000,fp);
printf("%i,%s\n",++i,str);
}
printf("文件的行数为%d\n",i);
}
}
  • 打赏
  • 举报
回复
cngdzhang 2004-05-06
((fp=fopen("f1","rb"))==NULL)
改为
((fp=fopen("f1.","rb"))==NULL)
你的文件扩展名没加上,没有扩展名也要加多一个.点
象.txt等最好了,不会漏掉
  • 打赏
  • 举报
回复
wuqizhi 2004-05-06
我的原文是:
#include<stdio.h>
main()
{
FILE *fp;
int n=0;
char c;
clrscr();
if((fp=fopen("f1","rb"))==NULL) exit(0);
while(!feof(fp))
{ c=fgetc(fp);
if(c=='\n') n++;
}
printf("%d",n+1);
fclose(fp);
getch();
}
问题是:运行后,屏幕上什么都没有。
  • 打赏
  • 举报
回复
wuqizhi 2004-05-06
就是屏幕什么都没有撒
  • 打赏
  • 举报
回复
icelover 2004-05-06
那会有什么错,你把出错信息贴出来撒,难道是在clrscr这一行出错,你要包含头文件<conio.h>
  • 打赏
  • 举报
回复
wuqizhi 2004-05-06
快啊
劳烦各位啦
  • 打赏
  • 举报
回复
wuqizhi 2004-05-06
哦,
我的原文本应是‘\n’
但我要问的不是这
  • 打赏
  • 举报
回复
cngdzhang 2004-05-06
用rb方式打开
fp=fopen("f1.txt","rb"))==NULL

if(c=='\0') n++;
改为:
if(c=='\n') n++;
  • 打赏
  • 举报
回复
icelover 2004-05-06
'\0'是字符串结束的标志
'\n'是换行
  • 打赏
  • 举报
回复
icelover 2004-05-06
if(c=='\0') n++;
改成if(c=='\n') n++;
  • 打赏
  • 举报
回复
相关推荐
发帖
C语言
加入

6.5w+

社区成员

C语言相关问题讨论
申请成为版主
帖子事件
创建了帖子
2004-05-06 10:31
社区公告
暂无公告