diff --git a/file/read_binary.cpp b/file/read_binary.cpp new file mode 100644 index 0000000..d1c8463 --- /dev/null +++ b/file/read_binary.cpp @@ -0,0 +1,50 @@ +/* +AUTORE: Manuel Vichi 3^AIN +Legge da un file binario e memorizza in un array. +*/ +#include +using namespace std; +size_t readValues(FILE* fptr, int storage[]) { + rewind(fptr); + size_t size = sizeof(storage) / sizeof(storage[0]); + for (size_t i = 0; i < size; i++) { + storage[i] = 0; + } + return fread(&storage,sizeof(int),size,fptr); +} +size_t readValuesLoop(FILE* fptr, int storage[]) { + rewind(fptr); + int value = 0; + size_t size = sizeof(storage) / sizeof(storage[0]); + for (size_t i = 0; i < size; i++) { + storage[i] = 0; + } + size_t counter = 0; + while (fread(&value, sizeof(int), 1, fptr) == 1 && counter < sizeof(storage)) { + storage[counter] = value; + counter++; + } + return counter; +} +int main(void) { + FILE* file = fopen("file_70.bin","rb"); + if (file != NULL) { + int arr[100]; + int arr2[100]; + cout << "Valori letti (singola fread): " << readValues(file,arr) << endl; + cout << "Valori letti (ciclo while): " << readValuesLoop(file,arr2) << endl; + cout << "Array 1: "; + size_t size = sizeof(arr) / sizeof(arr[0]); + for (size_t i = 0; i < size; i++) { + cout << arr[i] << " "; + } + cout << endl << "Array 2: "; + size = sizeof(arr2) / sizeof(arr2[0]); + for (size_t i = 0; i < sizeof(arr2); i++) { + cout << arr2[i] << " "; + } + cout << endl; + fclose(file); + } + return 0; +} diff --git a/file/write_binary.cpp b/file/write_binary.cpp new file mode 100644 index 0000000..a800819 --- /dev/null +++ b/file/write_binary.cpp @@ -0,0 +1,20 @@ +/* +AUTORE: Manuel Vichi 3^AIN +Scrive in un file binario degli interi da un'array +*/ +#include +using namespace std; +int main(void) { + size_t written = 0; + FILE* file = fopen("giovanni.bin","wb"); + if (file != NULL) { + int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; + int n = sizeof(a) / sizeof(a[0]); + written = fwrite(&a, sizeof(int), n, file); + fclose(file); + } + if (written > 0) { + return 0; + } + return -1; +}