首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

c 文件读写解决办法

2012-05-09 
c 文件读写有个文件,一行一行写入的,如下a1b2c3现在想从下往上一行一行的给打印出来,可以怎么处理啊?[

c 文件读写
有个文件,一行一行写入的,如下
a=1
b=2
c=3
现在想从下往上一行一行的给打印出来,可以怎么处理啊?


[解决办法]
http://topic.csdn.net/u/20080916/08/90c457d6-59b9-4a5f-9cb4-b3fafc074c30.html
[解决办法]
可以循环读取到最后一行 记录行数n 输出 rewind 再读取到n-1 输出 重复 
这样可能很麻烦 不知道 有没有好方法
[解决办法]
如果数据块的大小是确定的,可以使用使用feek函数,跟踪跳转文件位置指针

例如
fseek( fp, -10, SEEK_END)
read...
fseek( fp, -20, SEEK_END)
read...
fseek( fp, -30, SEEK_END)
read...
[解决办法]
我照我的思路简单写了一个程序

C/C++ code
#include <stdio.h>#include <stdlib.h>int main(int argc, char** argv){    FILE *fp;    char *buf;    int i, dataNum = 5, dataSize = 4, nowLoc = 0;    buf = (char *)malloc(dataSize * sizeof(char));    fp = fopen("a.txt", "rb");    for(i = 0; i < dataNum; i++)    {            fseek(fp, - (nowLoc += dataSize) * sizeof(char), SEEK_END);        fread(buf, sizeof(char), dataSize, fp);        printf("%s", buf);    }    return 0;}
[解决办法]
正常fgets所有的行,用数组或者什么管理起来.然后想怎么打印都行
[解决办法]
简单的思路, 统计所有的 '\n' 的位置并记录到数组中

然后 使用fseek函数进行文件指针偏移读取

热点排行