School-Coding-Cpp/file/es7_binary.cpp

33 lines
839 B
C++

/*
AUTORE: Manuel Vichi 3^AIN
Esercizio 7 File Binari
*/
#include <stdio.h>
#include <stdbool.h>
#include <stdint.h>
using namespace std;
void fChangeEndianness(char * fileName) {
FILE *file = fopen(fileName, "rb+");
if (!file) {
perror("Errore durante l'apertura del file di lettura/scrittura");
return;
}
uint8_t buffer[4];
long pos = 0;
while (fread(buffer, 1, 4, file) == 4) {
uint8_t tmp;
tmp = buffer[0]; buffer[0] = buffer[3]; buffer[3] = tmp;
tmp = buffer[1]; buffer[1] = buffer[2]; buffer[2] = tmp;
fseek(file, pos, SEEK_SET);
fwrite(buffer, 1, 4, file);
pos += 4;
fseek(file, pos, SEEK_SET);
}
fclose(file);
}
int main(void) {
char file[] = "indiano.bin";
fChangeEndianness(file);
return 0;
}