void FileToData(char *pSrcFileName,char *pDstFileName)
{
FILE *pSrcFile = fopen (pSrcFileName, "rb" );
FILE *pDstFile = fopen(pDstFileName,"wb");
if (pSrcFile == NULL)
{
fputs ("Error: invalid source file!",stderr);
}
long lSize;
unsigned char * buffer;
size_t result;
int i = 0;
//获取文件大小
fseek (pSrcFile , 0 , SEEK_END);
lSize = ftell (pSrcFile);
rewind (pSrcFile);
// 分配内存存储整个文件
buffer = (unsigned char*) malloc (sizeof(unsigned char)*lSize);
if (buffer == NULL)
{
fputs ("Memory alloc error!",stderr);
}
//将文件拷贝到buffer中
result = fread (buffer,1,lSize,pSrcFile);
if (result != lSize)
{
fputs ("Reading error",stderr);
exit (3);
}
for (i = 0; i < lSize; i++)
{
fprintf(pDstFile,"%.2x",buffer[i]);
}
// 关闭文件并释放内存
fclose (pSrcFile);
fclose(pDstFile);
free (buffer);
}
int chToData(char ch)
{
int data = 0;
FileToData与DataToFile(优化版,txt为原始文件2倍大小)
最新推荐文章于 2022-04-26 15:16:56 发布
该博客介绍了一个从文件(FileToData)到数据(DataToFile)的转换过程,并提供了优化后的实现,使得转换后的txt文件大小是原始文件的两倍。在FileToData函数中,读取源文件内容并以十六进制格式写入目标文件。DataToFile函数则将包含十六进制数据的文本文件解码回其原始形式。转换过程中涉及字符到整数的映射和文件I/O操作。
摘要由CSDN通过智能技术生成