c++ 文件io 怎么把指针定位到指定的行 10
txt文件里数据是按行存储的每一行是一个单位的数据而且,每一行数据的长度不一样这样的情况下怎么把指针定位到某一个行...
txt文件里 数据是按行存储的 每一行是一个单位的数据
而且,每一行数据的长度不一样
这样的情况下 怎么把指针定位到某一个行 展开
而且,每一行数据的长度不一样
这样的情况下 怎么把指针定位到某一个行 展开
5个回答
2015-08-10
展开全部
如果行的长度不固定,没有简单的办法,只能一直读到第10行。如果每行的长度是固定的,那么用fseek直接定位。
开一个临时内存区,
然后一行一行的用fgets()读入,每次可以读一行,然后就可以定位了。
i=1;
while(i++<10) fgets();
fgets();//第10行了。
开一个临时内存区,
然后一行一行的用fgets()读入,每次可以读一行,然后就可以定位了。
i=1;
while(i++<10) fgets();
fgets();//第10行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/**上面的回答有漏洞,就是不能回到文件指针以上的其他行
***定义一个指向任意行的函数,这个函数经过测试,没有问题。
**/
void point_to_line(ifstream& f, const int line){ //这里定义了文件输入流,你可以定义其他文件流
char* buf = new char[100]; //这里假设文件每行不超过100个字符
f.seekg(0, ios::beg); //先回到文件的开头
for(int i=0; i<line-1; i++)
f.getline(buf, 100);
}
***定义一个指向任意行的函数,这个函数经过测试,没有问题。
**/
void point_to_line(ifstream& f, const int line){ //这里定义了文件输入流,你可以定义其他文件流
char* buf = new char[100]; //这里假设文件每行不超过100个字符
f.seekg(0, ios::beg); //先回到文件的开头
for(int i=0; i<line-1; i++)
f.getline(buf, 100);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
每行结束的时候有一个回车啊 只有一行一行的扫过去
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
从前向后查,每个回车符就是一行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询