C语言实现从指定位置截取文件内容
更新时间:2023年11月03日 10:40:25 作者:whik1194
这篇文章主要为大家详细介绍了如何利用C语言实现从指定位置截取文件内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
源代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <sys/stat.h>
#include <sys/types.h>
#define FILE_OFFSET 10
#define EXE_ABORT() {system("pause");return 0;}
#define FILE_NAME_I "./test.txt"
#define FILE_NAME_O "./test_out.txt"
int main(int argc, char *argv[])
{
uint32_t offset = FILE_OFFSET;
char filename_i[300];
char filename_o[300];
FILE *fp_i;
FILE *fp_o;
char ch = 0;
int ret = 0;
struct stat stat_i;
struct tm *tm_p;
strcpy(filename_i, FILE_NAME_I);
strcpy(filename_o, FILE_NAME_O);
printf("filname_i = %s\n", filename_i);
printf("filname_o = %s\n", filename_o);
ret = stat(filename_i, &stat_i);
if(ret != 0)
{
printf("%s: get file stat failed", filename_i);
EXE_ABORT();
}
printf("get file stat success\n");
//! 文件的大小,字节为单位
printf("size of the file in bytes: %.02f MB (%d Bytes)\n", stat_i.st_size / 1024.0, stat_i.st_size);//
fp_i = fopen(filename_i, "rb");
fp_o = fopen(filename_o, "wb");
if(fp_i == NULL)
{
printf("%s open failed\n", filename_i);
EXE_ABORT();
}
if(fp_o == NULL)
{
printf("%s open failed\n", filename_o);
EXE_ABORT();
}
printf("offset = %d(0x%x)\n", offset, offset);
fseek(fp_i, offset, SEEK_SET);
while(1)
{
ch = fgetc(fp_i);
if(feof(fp_i))
break ;
fputc(ch, fp_o);
}
fclose(fp_i);
fclose(fp_o);
printf("截取完成\n");
system("pause");
return 0;
}运行结果:
输入文件test.txt内容:
1234567890ABCDEFGHIJKLMOPQRSTUVWXYS
偏移量设定为10,截取后的test_out.txt文件内容:
ABCDEFGHIJKLMOPQRSTUVWXYS
更方便的,可以argc参数,来实现通过指定输入文件路径和指定偏移量。
到此这篇关于C语言实现从指定位置截取文件内容的文章就介绍到这了,更多相关C语言截取文件内容内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
C++ 中的 mutable关键字作用与使用场景分析(最新推荐)
C++中的mutable关键字允许在常量成员函数中修改特定成员变量,主要用于缓存机制、延迟计算和多线程同步等场景,它在设计中提供灵活性,但使用时需谨慎,本文介绍C++ 中的 mutable关键字作用与使用场景分析,感兴趣的朋友一起看看吧2025-02-02
牛顿迭代法求多项式在1.5附近的值2*x的3次幂--4x平方+3*x-6=0的实现代码
以下代码是使用了牛顿迭代法求多项式在1.5附近的值 2*x的3次幂 - 4x的平方 + 3*x -6=0的实例。需要的朋友参考下吧2013-05-05


最新评论