Home > ソフトウェア > 恋するHEXと畢竟のBIN > hex2bin2hex100.zip > Src > bin2hex.cpp
//bin2hex.cpp Coded by x@rgs #include <stdio.h> //出力ファイル名用バッファ(省略された時のみ) const int iFileNmaeBuffer=1024; int strlen(const char *str){ int i=0; while(*str++)i++; return i; } int main(int argc,const char* argv[]){ FILE* fpIn; FILE* fpOut; if(argc==2||argc==3){ if((fpIn=fopen(argv[1],"rb"))!=NULL){ char szOut[iFileNmaeBuffer]={0}; char* pszOut; if(argc==2){ //出力ファイル名が省略された時は~.hexとして出力 int i=strlen(argv[1]); if(i+1>iFileNmaeBuffer){ //バッファが足りない時はa.hexとして出力 szOut[0]='a'; i=1; }else{ pszOut=szOut; while((*(pszOut)++=*(argv[1])++)); } szOut[i]='.'; szOut[++i]='h'; szOut[++i]='e'; szOut[++i]='x'; } if((fpOut=fopen((argc==2)?szOut:argv[2],"w"))!=NULL){ int i=0; int iChar; while((iChar=fgetc(fpIn))!=EOF){ if(i!=0){ //16文字毎に改行する if(i%16==0)fprintf(fpOut,"\n"); else fprintf(fpOut," "); } fprintf(fpOut,"%02lx",iChar&0xFFl); i++; } fclose(fpOut); }else{ fprintf(stderr,"Cannot open %s\n",(argc==2)?szOut:argv[2]); } fclose(fpIn); }else{ fprintf(stderr,"Cannot open %s\n",argv[1]); } }else{ fprintf(stderr,"Invalid argument\n"); } return 0; }
Home > ソフトウェア > 恋するHEXと畢竟のBIN > hex2bin2hex100.zip > Src > bin2hex.cpp