/* 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; }