Programma che prende in input un file di testo in cui sono salvati dei valori scritti in forma binaria (0100010...) e che fornisce in uscita un file in cui sono scritti i bit singoli che rappresentano i valori binari.
#include <cstdio>
#include <iostream> 
#include <fstream>
#include <cstdlib>
#include <vector>
using namespace std;
int main(int argc, char *argv[]){
 ifstream in(argv[1]);
 ofstream out(argv[2]);
 
 if(in.is_open()){printf("File %s trovato\n", argv[1]);}
 else{printf("File %s NON trovato\n", argv[1]);}
 if(out.is_open()){printf("File %s creato\n", argv[2]);}
 else{printf("File %s NON creato\n", argv[2]);}
 char c;
 char buffer = 0;
 int cont = 0;
 while(in >> c){
 
  if(c=='1' || c=='0'){
   buffer = buffer*2 + (c-'0');
   cont++;
  if(cont==8){
   out.write(&buffer, 1);
   cont = 0;
  }
  }
 }
 while(cont>0){
  buffer=buffer*2;
  ++cont;
  if(cont==8){
   out.write(&buffer, 1);
   cont = 0;
  }
 }
 in.close();
 out.close();
}
Nessun commento:
Posta un commento