首页 > 编程知识 正文

c语言文件的分割与合成,c语言指定数据宽度

时间:2023-05-03 12:21:25 阅读:205197 作者:2957

文章目录 一、fseek 函数生成指定大小的文件





一、fseek 函数生成指定大小的文件

利用 fseek 函数可以移动指针的原理 , 文件打开后 , 直接调用 fseek 函数 , 将指针向后移动指定偏移 , 然后在偏移后的位置写出一个字节数据 , 可以瞬间生成一个指定大小的文件 ;

如要生成 n n n 字节的文件 , 可以先将指针指向距离开始位置偏移 n n n 字节的位置 , 在此处写出一个空字节 , 即可精准的生成一个 n n n 字节的文件 ;


fseek 函数原型 :

#include <stdio.h>int fseek(FILE *stream, long offset, int fromwhere);

fseek 函数的作用是 以 int fromwhere 参数为基准 , 偏移 long offset 个字节 , 该偏移可以是正数 , 也可以是负数 ;


这里特别注意 , 如果要精准的生成 100 字节大小的文件 , 需要从开始位置偏移 99 字节 , 然后指针指向第 100 字节的位置 , 此时写入一个字节 , 写入的这个字节就是第 100 字节数据 , 其前面 99 个字节都是空的 ;


生成 1000 * 1000 字节大小的文件 ;

特别注意 : 将指针指向 距离开始位置 1000 * 1000 - 1 字节偏移位置 , 在第 1000 * 1000 字节处 , 写入一个字节数据 ;


代码示例 :

#include <stdio.h>int main(){ // 以写文本的方式向文件中写出数据 FILE *p = fopen("D:/File/1000.dat", "w"); // 将指针指向 距离开始位置 1000 * 1000 - 1 字节偏移位置 // 这里特别注意 , 要预留出一个字节 , 用于做数据填充 fseek(p, 1000 * 1000 - 1, SEEK_SET); // 在文件内部指针指向的第 1000 * 1000 字节处 , 写入一个字节数据 char a = 0; fwrite(&a, 1, sizeof(a), p); // 关闭文件 fclose(p); return 0;}

执行结果 :

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。