我是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();
}
...全文
53 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
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++;

70,023

社区成员

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

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