66 lines
1.7 KiB
C++
66 lines
1.7 KiB
C++
/*
|
|
AUTORE: Manuel Vichi 3^AIN
|
|
Esercizio 8 File Binari
|
|
*/
|
|
#include <stdio.h>
|
|
#include <stdbool.h>
|
|
using namespace std;
|
|
int convertBinaryIntegers(const char * textFile, const char * binaryFile, const size_t count) {
|
|
FILE* text = fopen(textFile,"r");
|
|
FILE* binary = fopen(binaryFile,"wb");
|
|
if (text == NULL || binary == NULL) {
|
|
perror("Errore durante l'apertura dei file");
|
|
return -1;
|
|
} else {
|
|
char buffer[count];
|
|
int array[count];
|
|
size_t i = 0;
|
|
for (size_t i = 0; i < count; i++) {
|
|
array[i] = 0;
|
|
}
|
|
while (fgets(buffer,sizeof(buffer),text) && i < count) {
|
|
int numero;
|
|
if (sscanf(buffer, "%d", &numero) == 1) {
|
|
array[i] = numero;
|
|
i++;
|
|
}
|
|
}
|
|
fwrite(&array,sizeof(int),count,binary);
|
|
fclose(text);
|
|
fclose(binary);
|
|
return 0;
|
|
}
|
|
return -1;
|
|
}
|
|
int convertBinaryFloat(const char * textFile, const char * binaryFile, const size_t count) {
|
|
FILE* text = fopen(textFile,"r");
|
|
FILE* binary = fopen(binaryFile,"wb");
|
|
if (text == NULL || binary == NULL) {
|
|
perror("Errore durante l'apertura dei file");
|
|
return -1;
|
|
} else {
|
|
char buffer[count];
|
|
float array[count];
|
|
size_t i = 0;
|
|
for (size_t i = 0; i < count; i++) {
|
|
array[i] = 0;
|
|
}
|
|
while (fgets(buffer,sizeof(buffer),text) && i < count) {
|
|
float numero;
|
|
if (sscanf(buffer, "%f", &numero) == 1) {
|
|
array[i] = numero;
|
|
i++;
|
|
}
|
|
}
|
|
fwrite(&array,sizeof(int),count,binary);
|
|
fclose(text);
|
|
fclose(binary);
|
|
return 0;
|
|
}
|
|
return -1;
|
|
}
|
|
int main(void) {
|
|
//return convertBinaryIntegers("test.txt","test.bin",20);
|
|
return convertBinaryFloat("test.txt","test.bin",20);
|
|
}
|