C 언어 는 텍스트 파일/바 이 너 리 파일 형식 교환 을 실현 합 니 다.

2662 단어 C 언어형식 교환
이 프로그램 은 텍스트 형식의 입력 파일 a1.txt 를 직접 만 들 려 고 합 니 다.컴 파일 후 텍스트 파일 앞 255 바이트 이내 의 문 자 를 해당 하 는 AscII 코드 값 의 바 이 너 리 로 변환 하여 출력 파일 a2.txt 에 저장 할 수 있 습 니 다.그리고 바 이 너 리 파일 을 a3.txt 파일 로 복원 하고 저장 합 니 다.
구체 적 인 코드 는 다음 과 같다.

#include <cstdio>
#include <stdio.h>
#include <string.h>
#define NSIZE 8

void print_2(int val2);
/***********        **********/
void Text2Bin(const char* sIn,const char* sOut){
  char a[255];
  int count = 0;
  int ch;
  for(int j=0; j<255;j++)a[j]='\0';
  FILE* fin=fopen(sIn,"r");
  FILE* fout=fopen(sOut,"w");
  for(int i=0 ; i<=255 ; i++)fscanf(fin,"%c",&a[i]);
  for(int k=0 ; k<=254&&a[k] !='\0'; k++)
  {  
    ch = a[k];
    for(int a=7;a>=0;a--) fprintf(fout,"%d",ch>>a&1);
    //fprintf(fout,"
"); } fclose(fin); fclose(fout); } /*********** **********/ void Bin2Text(const char* sIn,const char* sOut){ FILE* fin=fopen(sIn,"r"); FILE* fout=fopen(sOut,"w"); char str[255*8]; for(int r=0; r<255 ;r++) str[r]='\0'; int i = 0, j = 0, iTemp = 0, flag = 0; int ibina[NSIZE]; char cRead[NSIZE]; char cChar; for(int a=0 ; a<=255 ; a++)fscanf(fin,"%c",&str[a]); //for(int f=0 ; f<=255 ; f++)printf("%c",str[f]); while(flag <= 255){ //printf("%d",flag); for(int b=flag ; b>=flag && b<flag+NSIZE ; b++) { //printf("%d",b%8); cRead[b%8] = str[b]; //printf("%c",cRead[b%8]); } for(i = 0; i < NSIZE; i++) { ibina[i] = (cRead[i]-'0'); } iTemp = 1; cChar = 0; for(j = 7; j >=0 ; j--) { //printf("%c",ibina[j]); //printf("%d
",cChar); cChar+=ibina[j]*iTemp; iTemp *= 2; } printf("%c",cChar); fprintf(fout,"%c",cChar); flag=flag+8; } fclose(fin); fclose(fout); } int main(){ Text2Bin("d:\\a1.txt","d:\\a2.txt"); Bin2Text("d:\\a2.txt","d:\\b2.txt"); printf("
Successfully converted file!
"); return 0; }
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기