C++如何做到只读取文件的某一行

比如在一个目录下有好多文件,现在我要读取每个文件的第二行,请问使用什么方式可以实现?给个思路也可以,感谢大家...文件是这样的:516511512513519563534... 比如在一个目录下有好多文件,现在我要读取每个文件的第二行,请问使用什么方式可以实现?给个思路也可以,感谢大家...
文件是这样的:

516 511 512 513
519 563 534 298

就是说我不能直接读第二行,要先用一个数组把第一行读了,然后忽略掉?没有其他可以定位的东西吗...
展开
 我来答
风若远去何人留
2015-09-26 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450134
专业C/C++软件开发

向TA提问 私信TA
展开全部

可以先使用ifstream类打开要读的文件,然后使用ifstream的成员函数getline读出一行数据。

如果需要读的并不是第一行,而是中间某一行,那么可以先读出前面所有行,抛弃后读需要的一行。

以下是读文件file_name的第n行的操作:

//读取文件filename的第n行,存到buf中,buf_len为buf的长度。
void read_line(char *filename, int n, char *buf, int buf_len)
{
    ifstream in(filename);//打开文件。
    int i;
    
    for(i = 0;i< n; i ++)
        in.getline(buf, buf_len);//读取数据。
    in.close();//关闭文件。虽然在C++中不是必须,但是显式关闭文件是一个很好的习惯。
}
摆渡白肚白度
2009-05-14 · TA获得超过339个赞
知道小有建树答主
回答量:179
采纳率:0%
帮助的人:193万
展开全部
如果你确切知道第一行所占的字节数,那么可以使用fseek定位到第二行的位置再读;如果不知道的话,那就只能读取第一行再扔了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lwgea
2009-05-14 · TA获得超过282个赞
知道小有建树答主
回答量:101
采纳率:0%
帮助的人:0
展开全部
枚举目录下的文件名;
依次打开;
一次读取一行;
把第一行的数据忽略;
这样就读到了第二行。
伪码如下:
getline temp;
getline str;
这样str就是第二行了。
补充答案:
直接忽略掉是最好的方法,又方便,不知道楼主为何还要别的方法?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式