运用C++如何用计算行数。

#include<iostream>#include<fstream>#include<string>usingnamespacestd;intmain(){string... #include<iostream>
#include<fstream>
#include<string>
using namespace std;

int main()
{
string filename;
ifstream ipfile;
ofstream opfile;
char c;

opfile.open("hellofile.txt");
opfile<<"Hello,file!";

cout<<"Please enter the file name: ";
cin>>hellofile;

ipf.open(hellofile.c_str());
if(!ipf.is_open())
{
cout<<"Oops!Couldn't open "<<hellofile<<"!/n";
}
else
{
cout<<"Contents of"<< hellofile<<":/n";
cout<<"<BEGIN>";
while (ipf.get(c))
{
cout<<c;
}

写到这接下来的很多错误。
请高手帮忙写完这个程序!
展开
 我来答
_叶子妞妞_
2015-06-11 · TA获得超过3672个赞
知道小有建树答主
回答量:327
采纳率:83%
帮助的人:90.6万
展开全部

统计行数可以通过统计换行符\n来实现。不过需要注意的是,有些文件最后一行并不存在换行符,所以代码中需要对此作处理。

可以在达到文件结尾后,判断前一个字符,如果不是换行符,那么应补加最后一行统计。

代码如下:

假定输入文件为in.txt。

#include <cstdio>
using namespace std;
int main()
{
    FILE * fp = NULL; //文件指针。
    int c, lc=0; //c为文件当前字符,lc为上一个字符,供结尾判断用。
    int line = 0; //行数统计
    fp = fopen("in.txt", "r");//以只读方式打开文件。
    if(fp == NULL) return -1; // 文件打开失败。
    while((c = fgetc(fp)) != EOF) //逐个读入字符直到文件结尾
    {
        if(c == '\n') line ++; //统计行数。
        lc = c; //保存上一字符。
    }
    fclose(fp); //关闭文件
    if(lc != '\n') line ++;//处理末行
    
    printf("文件共有%d行。\n", line);
    
    return 0;
}

样例输入输出:

如in.txt有如下内容:

test line1
test line2

则会输出:

文件共有2行。

wanfustudio
2009-06-07 · TA获得超过1万个赞
知道大有可为答主
回答量:5513
采纳率:100%
帮助的人:3773万
展开全部
太复杂,一行一行get

ipf.getline,调一次是一行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sdfwds4
2009-06-07 · TA获得超过953个赞
知道小有建树答主
回答量:629
采纳率:0%
帮助的人:795万
展开全部
计算一个文件的行数不用这么麻烦的,参考下面的程序
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
int main()
{
string filename1;
ifstream ipfile;
char c;
int line=1; //行数
cout<<"enter a file name:";
cin>>filename1;
ipfile.open(filename1.c_str());
if ( !ipfile ) //打开文件出错就退出
{
cout<<"Oops!Couldn't open "<<filename1.c_str()<< endl;
return 0;
}
while (ipfile.get(c))
{
if (c=='\n')
line++; //行数加 1
}
cout<<"the line is:"<<line<<endl;
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式