#include #include // Definition Wav struct struct Wav { char chunkID[4]; uint32_t chunkSize; char format[4]; char subchunk1ID[4]; uint32_t subchunk1Size; uint16_t audioFormat; uint16_t numChannels; uint32_t sampleRate; uint32_t byteRate; uint16_t blockAlign; uint16_t bitsPerSample; char subchunk2ID[4]; uint32_t subchunk2Size; }; // Union zum Auslesen des Wav struct union ReadWav { struct Wav header; char c[44]; }; int main() { char inputFileName[260]; printf("Input file name: "); scanf("%s", inputFileName); // FILE pointer auf Datei zum einlesen FILE *inputFile = fopen(inputFileName, "r"); if (!inputFile) { printf("Input file not found/corrupted!\n"); return 1; } // Wav-Header über char Array einlesen und Freigabe von FILE pointer union ReadWav wavData; fread(wavData.c, sizeof(wavData.c), 1, inputFile); fclose(inputFile); // Headerdaten über struct ausgeben printf("ChunkID: %.4s\n", wavData.header.chunkID); printf("ChunkSize: %d bytes\n", wavData.header.chunkSize); printf("Format: %.4s\n", wavData.header.format); printf("Subchunk1ID: %.4s\n", wavData.header.subchunk1ID); printf("Subchunk1Size: %d bytes\n", wavData.header.subchunk1Size); printf("AudioFormat: %d\n", wavData.header.audioFormat); printf("NumChannels: %d\n", wavData.header.numChannels); printf("SampleRate: %d Hz\n", wavData.header.sampleRate); printf("ByteRate: %d bytes/second\n", wavData.header.byteRate); printf("BlockAlign: %d bytes\n", wavData.header.blockAlign); printf("BitsPerSample: %d\n", wavData.header.bitsPerSample); printf("Subchunk2ID: %.4s\n", wavData.header.subchunk2ID); printf("Subchunk2Size: %d bytes\n", wavData.header.subchunk2Size); return 0; }