000
23.05.2018, 21:02 Uhr
asdf453
|
Liebes Forum,
Das Programm soll eine ganze Zahl n>=6 einlesen, und anschließend n Texte in einer Strucktur speichern und ausgeben. Bei der Ausgabe sollen die Texte einemal In der Form wie sie einegegeben wurden und einemal die ersten 3 und letzten 3 vertauscht ausgegeben werden.
Die Strucktur soll so aussehen:
C++: |
struct TextBlock { char * Text; size_t Laenge; };
|
Ich habe bisher:
C++: |
#include <iostream> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <iomanip> using namespace std;
int main(int argc, char* argv[]) { unsigned int count = 0; std::cin >> count; int TextFeld ** array = new TextFeld*[count]; if(array == nullptr) return -1; for(size_t i = 0; i < count; ++i) { array = new TextFeld(); char* tmp = nullptr; scanf("%ms[^\n]", &tmp); array->text = tmp; array->len = strlen(tmp); }
for(size_t i = 0; i < count; ++i) { std::cout << std::setw(5) << array->len << ": " << array->text << std::endl; } for(size_t i = 0; i < count; ++i) delete array; delete[] array; } struct TextFeldMod : public TextFeld { TextFeldMod() { text = nullptr; len = 0; } ~TextFeldMod() { free(text); } };
|
Das Programm läuft nicht. Ich bin mir nicht sicher wie ich die Variablen richtig deklariere. z.b. TextFeld. Ich bin mit meinem Wissem am Ende angelangt. Der Umgang mit Pointern, Struckturen und das allokieren von Speicher mittels new ist neu für mich. Das praktische anwenden fällt mir noch schwer.
Bin für jeden Lösungsvorschlag oder Hilfe sehr Dankbar! Dieser Post wurde am 23.05.2018 um 21:35 Uhr von FloSoft editiert. |