3,879
社区成员




bool copyFile()
{
char *sourceFileName = "E:\\test.jpg";
//源文件
std::ifstream sourceFile;
sourceFile.open(sourceFileName, std::ios::binary);
if (sourceFile.fail())
{
std::cout << "打开文件失败" << std::endl;
sourceFile.close();
return false;
}
FILE *file;
fopen_s(&file, "E:\\22.jpg", "w");
char c[16];
while (!sourceFile.eof())
{
sourceFile.read(c, 16);
if (!sourceFile.eof())
{
for (int i = 0; i < 16; ++i)
{
int decimal = int((unsigned char)(c[i]));
char binary[255];
_itoa_s(decimal, binary, 2);
fwrite(binary, sizeof(binary), sizeof(binary), file);
}
}
}
return true;
}
#include <stdio.h>
#include <string.h>
#include <conio.h>
FILE *fi,*fo;
unsigned int n;
int c;
//-------------------------------------------------------
void main(int argc,char *argv[])
{
if (argc<3) {
cprintf("Bin2Hex srcfile desfile");
return;
}
if ((fi=fopen(argv[1],"rb"))==NULL) {
cprintf("Can not find file %s",argv[1]);
return;
}
if ((fo=fopen(argv[2],"w"))==NULL) {
fclose(fi);
cprintf("Can not create file %s",argv[2]);
return;
}
n=0;
while (1) {
c=fgetc(fi);
if (EOF==c) break;
n++;
if (1==n) fprintf(fo, "0x%02X",c);
else {
if (1==n%16) fprintf(fo,"\n0x%02X",c);
else fprintf(fo, ",0x%02X",c);
}
}
fcloseall();
cprintf("OK to Bin2Hex %u bytes.",n);
}
#include <stdio.h>
#include <string.h>
#include <conio.h>
FILE *fi,*fo;
int r;
unsigned int n,c;
long offset;
//-------------------------------------------------------
void main(int argc,char *argv[])
{
if (argc<3) {
cprintf("Hex2Bin srcfile desfile");
return;
}
if ((fi=fopen(argv[1],"rb"))==NULL) {
cprintf("Can not find file %s",argv[1]);
return;
}
if ((fo=fopen(argv[2],"wb"))==NULL) {
fclose(fi);
cprintf("Can not create file %s",argv[2]);
return;
}
n=0;
while (1) {
offset=ftell(fi);
r=fscanf(fi,"%2x",&c);
if (EOF==r) break;//
if (1==r) {
fputc(c,fo);
n++;
} else {//0==r
fseek(fi,offset,SEEK_SET);//因为VC6的Release版及其VC7,8,9,10,...版的fscanf未按约定保持offset不变,所以此处必须恢复offset
r=fgetc(fi);
if (EOF==r) break;//
}
}
fcloseall();
cprintf("OK to Hex2Bin %d bytes.",n);
}