统计文本文件的行数

lovelylan9510 2008-12-12 11:15:59
能帮我看下哪里错吗?不好意思,这块地方有点晕...谢拉
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
FILE *fp=fopen("e:\\new\\origin.txt","r");
if (fp==NULL)
{ printf("打开文件失败! \n");
return -1;
}
int i;
fread(&i,sizeof(i),1,fp);
int count=0;
while(!feof(fp))
{ if(i==0x0d || i==0x0a)
count++;
fread(&i,sizeof(i),1,fp);
}
fclose(fp);
cout<<"该文件共有"<<count<<"行"<<endl;
return 0;
}
...全文
270 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Qlaiaqu 2008-12-13
  • 打赏
  • 举报
回复
6楼正解
lann64 2008-12-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lovelylan9510 的回复:]
getline怎么用啊....
[/Quote]
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main()
{
ifstream fs("e:\\new\\origin.txt",ios::in);
string line;
int count=0;
while(getline(fs,line))
++count;
cout<<"该文件共有"<<count<<"行"<<endl;
return 0;
}
shyli 2008-12-13
  • 打赏
  • 举报
回复
文件流重定向加gets

#include<iostream>
using namespace std;
int main()
{
freopen("in.txt","r",stdin);
int count = 0;
char ch[1024];
while(gets(ch))
count++;
cout<<"该文件共有"<<count<<"行"<<endl;
return 0;
}

就呆在云上 2008-12-13
  • 打赏
  • 举报
回复

用fgets函数吧,方便的多:
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
FILE *fp=fopen("a.txt","r");
if (fp==NULL)
{ printf("打开文件失败! \n");
return -1;
}
char i[256];
fgets(i,256,fp);
int count=0;
while(!feof(fp))
{
count++;
fgets(i,256,fp);
}
fclose(fp);
cout<<"该文件共有"<<count<<"行"<<endl;
return 0;
}


我的a.txt如下:
ROW0:ABCDEFGHIJKLMNOPQRS
ROW1:UVWXYZABCDEFGHIJKLM
ROW2:OPQRSTUVWXYZABCDEFG
ROW3:IJKLMNOPQRSTUVWXYZA
ROW4:CDEFGHIJKLMNOPQRSTU
ROW5:WXYZABCDEFGHIJKLMNO
ROW6:QRSTUVWXYZABCDEFGHI
ROW7:KLMNOPQRSTUVWXYZABC
ROW8:EFGHIJKLMNOPQRSTUVW
ROW9:YZABCDEFGHIJKLMNOPQ
lovelylan9510 2008-12-13
  • 打赏
  • 举报
回复
除了getline还有其他方法吗?这种还没学....
ynkmhp 2008-12-12
  • 打赏
  • 举报
回复
统计\n
lovelylan9510 2008-12-12
  • 打赏
  • 举报
回复
getline怎么用啊....
SearchLife 2008-12-12
  • 打赏
  • 举报
回复
同意用getline
Vegertar 2008-12-12
  • 打赏
  • 举报
回复
也可以统计char('\n')的个数.
lann64 2008-12-12
  • 打赏
  • 举报
回复
int i;
fread(&i,sizeof(i),1,fp);
---------------
用int是不行的。试试char。

还有要是统计文本文件的行数,直接getline不就行了。

65,210

社区成员

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

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