Aufgabe 2
parent
052e1b34ed
commit
66d220ebc5
Binary file not shown.
|
@ -1,10 +1,11 @@
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
// Template für flexiblen Array Typ
|
// Template für flexiblen Array Typ
|
||||||
template <typename T>
|
template <typename T>
|
||||||
class Container {
|
class Container {
|
||||||
private:
|
public:
|
||||||
// T-Pointer für Inhalt des Array
|
// T-Pointer für Inhalt des Array
|
||||||
T* data;
|
T* data;
|
||||||
// int für Größe des Array
|
// int für Größe des Array
|
||||||
|
@ -22,13 +23,10 @@ private:
|
||||||
delete[] data;
|
delete[] data;
|
||||||
// Array Inhalt von Objekt Instanz auf T-Pointer von Übergangsarray linken
|
// Array Inhalt von Objekt Instanz auf T-Pointer von Übergangsarray linken
|
||||||
data = new_data;
|
data = new_data;
|
||||||
// Speicherfreigabe vom Übergangsarray
|
|
||||||
delete[] new_data;
|
|
||||||
// Aktualisieren der Array Größe der Instanz
|
// Aktualisieren der Array Größe der Instanz
|
||||||
arr_size = new_arr_size;
|
arr_size = new_arr_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
|
||||||
// Konstruktor mit Anfangsarraygröße als Parameter
|
// Konstruktor mit Anfangsarraygröße als Parameter
|
||||||
Container(int initial_arr_size){
|
Container(int initial_arr_size){
|
||||||
// Array Größe der Instanz initialisieren
|
// Array Größe der Instanz initialisieren
|
||||||
|
@ -61,15 +59,38 @@ public:
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
|
|
||||||
Container<std::string> container(10);
|
Container<char> wavData(0);
|
||||||
|
|
||||||
printf("%d\n", container.getArraySize());
|
// Pointer auf test.wav
|
||||||
|
FILE* input;
|
||||||
|
// Variable zum Abspeichern von Byte Größe der wav Datei
|
||||||
|
long num_bytes;
|
||||||
|
|
||||||
container[15] = "Test";
|
// Öffnen der test.wav Datei in input mit Leserechten
|
||||||
|
input = fopen("test.wav", "r");
|
||||||
|
|
||||||
std::cout << "container[15]: " << container[15] << std::endl;
|
// Wenn test.wav Datei nicht existiert Abbruch
|
||||||
|
if(input == NULL)
|
||||||
|
return 1;
|
||||||
|
|
||||||
printf("%d\n", container.getArraySize());
|
// Setzen von FILE Pointer auf Ende der Datei
|
||||||
|
fseek(input, 0, SEEK_END);
|
||||||
|
// Abspeichern der Byte Größe mithilfe von input Pointer Position
|
||||||
|
num_bytes = ftell(input);
|
||||||
|
|
||||||
|
// Rücksetzen von FILE Pointer auf Anfang der Datei
|
||||||
|
fseek(input, 0, SEEK_SET);
|
||||||
|
|
||||||
|
// Überladener [] Operator zur dynamischen Speicherreservierung
|
||||||
|
wavData[num_bytes*sizeof(char)-1];
|
||||||
|
|
||||||
|
// Einlesen der Datei mit num_bytes * sizeof(char) und Abspeichern in wavData Array
|
||||||
|
fread(wavData.data, sizeof(char), num_bytes, input);
|
||||||
|
|
||||||
|
// Freigabe des FILE Pointer
|
||||||
|
fclose(input);
|
||||||
|
|
||||||
|
std::cout << "wavData: " << wavData.getArraySize() << std::endl;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
};
|
};
|
Loading…
Reference in New Issue