From fab6d48bab4b4674ba0287f3e1469e13ef71e29e Mon Sep 17 00:00:00 2001 From: Vichingo455 Date: Sat, 10 May 2025 06:59:25 +0000 Subject: [PATCH] Upload files to "file" --- file/es6_binary.cpp | 51 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 file/es6_binary.cpp diff --git a/file/es6_binary.cpp b/file/es6_binary.cpp new file mode 100644 index 0000000..dd22841 --- /dev/null +++ b/file/es6_binary.cpp @@ -0,0 +1,51 @@ +/* +AUTORE: Manuel Vichi 3^AIN +Esercizio 6 File Binari +*/ +#include +#include +#include +#include +using namespace std; +int countBitOne(const char string[], const unsigned bit, const size_t lenght) { + unsigned count = 0; + for (size_t i = 0; i < lenght; i++) { + if ((string[i] >> bit) & 1) { + count++; + } + } + return count; +} +void generate(char string[], const size_t size) { + srand(time(NULL)); + for (size_t i = 0; i < size; i++) { + string[i] = (rand() % 26) + 'A'; + } +} +int writeBinary(const char * fileName, const char arr[], const size_t count) { + FILE* file = fopen(fileName,"wb"); + if (file != NULL) { + int written = fwrite(arr,sizeof(char),count,file); + fclose(file); + return written; + } else { + perror("Errore durante l'apertura del file di scrittura"); + return -1; + } + return -1; +} +int main(void) { + char fileName[] = "girmilloblu.bin"; + char arr[10]; + unsigned bitNumber = 3; + generate(arr,sizeof(arr)); + printf("Array generato: "); + for (unsigned i = 0; i < sizeof(arr); i++) { + printf("%c", arr[i]); + } + printf("\n"); + size_t count = sizeof(arr) / sizeof(arr[0]); + printf("Valori scritti nel file %s: %d\n", fileName, writeBinary(fileName,arr,count)); + printf("Byte con il bit %d a 1: %d", bitNumber, countBitOne(arr,bitNumber,sizeof(arr))); + return 0; +}