使用 fseek 、 fread 和指针读取文件

艾登

我正在尝试使用 c 操作图像,并尝试完全理解fseek()和恐惧()机制。

为什么fseek点的地址影响了fread功能也不改,点的地址不改也不增加?

这是一个简单的例子

int main()
{
    char *x[5]={"axxxx","aaaa","hxxx","rrrrr","xsdsdd"};
    char *point=x;
    char buffer[65]={0};

    fread(buffer,6,1,point);     //Here fread copy "axxx"
    fseek(point,5,SEEK_CUR);    //Here fseek increase point by five bytes
    fread(buffer,6,1,point);   // Here fread do nothing copy nothing
    printf("%s\n",buffer);    // buffer contain "axxx" first fread call
    printf("%x\n",point);    // point address did not changed because of fseek
    printf("%x",x);          //x still the same as point pointer

    return 0;
}
汤姆的

fread应该FILE *为第 4 个参数取一个参数。你给一个“char *”。

你对这里有什么期望?FILE是一个包含我们所说的“位置指示器”的 opact 结构。这就是允许在文件中“移动”的原因,fseekftell.

char *没有那个,你的代码被窃听了。

正确打开一个文件fopen

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用fread和fseek逐行读取

来自分类Dev

如何使用fseek()在fread()函数中正确移动指针?(C)

来自分类Dev

fseek和fread C编程

来自分类Dev

fseek和fread C编程

来自分类Dev

fseek()和从文件读取的麻烦

来自分类Dev

使用fread和fwrite

来自分类Dev

在C中使用fread读取文件

来自分类Dev

在C中使用fread读取文件

来自分类Dev

如何使用fseek和fwrite将文本插入文件

来自分类Dev

使用fread找不到文件

来自分类Dev

在不使用fopen()和fread()的情况下读取linux utmp文件

来自分类Dev

在不使用fopen()和fread()的情况下读取linux utmp文件

来自分类Dev

Tail 命令 - 使用 fseek() 和 getline() - 输出乱序

来自分类Dev

为什么不使用fread读取目录文件?

来自分类Dev

C-使用fread逐字节读取文件

来自分类Dev

以相反的顺序使用fread()读取文件会导致内存泄漏?

来自分类Dev

使用函数 fread() 读取文件中的数据块

来自分类Dev

使用 fread 从文件中读取数据到结构体

来自分类Dev

使用 fread() 在 PHP 中读取 DBF 文件的奇怪行为

来自分类Dev

使用fread读取对齐的列数据

来自分类Dev

fseek和feof的用法

来自分类Dev

fread 读取文件末尾

来自分类Dev

扫描文件以查找签名(使用fread)

来自分类Dev

扫描文件以查找签名(使用fread)

来自分类Dev

同时使用colClasses和fread参数

来自分类Dev

同时使用colClasses和fread参数

来自分类Dev

使用fread和awk子集许多.dat.gz文件

来自分类Dev

从文件分配内存,然后使用fread和fwrite C

来自分类Dev

使用fseek打印任意记录