c语言文件编程问题

notruiyi 2005-06-24 04:15:11
如何读取指定的行,速度越快越好
...全文
182 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuitian 2005-06-27
  • 打赏
  • 举报
回复
可以读行结束符或换行符,计数
建议,没有试过
notruiyi 2005-06-27
  • 打赏
  • 举报
回复
要用偏移量的话,就用数据块了
netty 2005-06-27
  • 打赏
  • 举报
回复
有个专门读取行的函数,名字好象frealine,但是若是要指定行的话,不行。
除非是固定的结构体类型或者别的固定的类型,何为固定的类型,意味着全文件都是int,char,或者long,这样才能计算出具体的位置。
dove01 2005-06-26
  • 打赏
  • 举报
回复
C语言的函数读取文件不是以行作为单位d
这个错误和我以前一样,我也这么认为的
后来才知道是线性存储的
每行结尾有0x0a 0x0d作为行结束符和换行符
所以读哪行,最好文件设定的时候就设置好每行固定长度
这样在确定行时,用偏移量会比较容易
notruiyi 2005-06-25
  • 打赏
  • 举报
回复
用2进制必须等长,但是这样直接打开就看不到数据,
必须用程序看
notruiyi 2005-06-25
  • 打赏
  • 举报
回复
就是因为内存不够才要在硬盘上直接操作,居然叫我读入RAM
notruiyi 2005-06-25
  • 打赏
  • 举报
回复
C语言对INI有特殊支持吗?能比其他的快?
51365133 2005-06-24
  • 打赏
  • 举报
回复
得到长度用2进制的方式一次读出

#include <string.h>
#include <stdio.h>

int main(void)
{
FILE *stream;
char msg[] = "this is a test";
char buf[20];

if ((stream = fopen("d:\\b.txt", "w+"))== NULL)
{
fprintf(stderr,"Cannot open output file.\n");
return 1;
}

fwrite(msg, strlen(msg)+1, 1, stream);
fseek(stream, SEEK_SET, 0);
fread(buf, strlen(msg)+1, 1, stream);
printf("%s\n", buf);

fclose(stream);

return 0;
}
younggundog 2005-06-24
  • 打赏
  • 举报
回复
自己定义结构,把文件内容写入RAM.
cqpp 2005-06-24
  • 打赏
  • 举报
回复
作成ini文件吧

69,369

社区成员

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

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