Hiho ihr Lieben,
hätte da mal nen Code zur Übung gebastelt der nicht so richtig in der Funktion Textauslesen will...
Wichtig ist halt, dass das Array bei Programmneustart wieder eingelesen und indexiert wird - ausgeben kann ich die Datei auch komplett, aber einzelne Filme z.B. noch nicht aufrufen. Compilieren lässt es sich auch nicht...
Bin auf Linux und compiliere mit g++.
Danke für jede Hilfe und Verbesserung
hätte da mal nen Code zur Übung gebastelt der nicht so richtig in der Funktion Textauslesen will...
Wichtig ist halt, dass das Array bei Programmneustart wieder eingelesen und indexiert wird - ausgeben kann ich die Datei auch komplett, aber einzelne Filme z.B. noch nicht aufrufen. Compilieren lässt es sich auch nicht...
Bin auf Linux und compiliere mit g++.
C++:
#include <cstdlib>
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
struct Bluray //Bluray Struktur
{
string name;
int bewertung;
string beschreibung;
};
const int maxfilm=10; //Bluray Array
Bluray film[maxfilm];
void bestaetigung(Bluray film); //Prototypen
void Textschreiben(Bluray film);
void Textauslesen();
int readnumber();
main()
{
int Filmanzahl;
Textauslesen(); //Ausgabe der bisherigen Einträge
cout << "Wie viele Filme möchten Sie der Liste hinzufügen? ";
Filmanzahl = readnumber();
int i=0;
for (i=0; i<Filmanzahl; i++)
{
cout << endl << "Name : ";
getline(cin, film[i].name);
cout << endl << "Bewertung: ";
film[i].bewertung = readnumber();
cout << endl << "Beschreibung: ";
getline(cin, film[i].beschreibung);
Textschreiben(film[i]);
bestaetigung(film[i]);
}
}
void bestaetigung(Bluray film) //Bestätigung & Ende des Programmes
{
cout << "Sie haben " << film.name << " mit der Bewertung " << film.bewertung << " und der Beschreibung: ->" << endl << film.beschreibung << endl << "<-erfolgreich hinzugefügt! " << endl;
}
void Textschreiben(Bluray film[i]) //Reinschreiben in die Datei "summe.txt"
{
fstream e;
e.open("summe.txt", ios::out|ios::app);
e << endl << "Name: " << film.name << " Bewertung: " << film.bewertung << " Beschreibung: " << film.beschreibung << "\n";
e.close();
}
void Textauslesen() //komplettes Auslesen und Ausgeben des bisher geschriebenen Textes
{
/*
cout << endl << "Bisherige Einträge: " << endl;
ifstream in("summe.txt");
copy(istreambuf_iterator<char>(in),istreambuf_iterator<char>(),ostreambuf_iterator<char>(cout));
cout << endl;*/
int i=0;
char test[256];
ifstream e; // Datei-Handle
e.open("summe.txt", ios::in); // Öffne Datei aus Parameter
i=0;
while (e.getline(test, 256, '\n'))
{ // Solange noch Daten vorliegen
getline(e, film[i]);
++i;
}
e.close();
/*cout << endl << "Found movie at position " << i << endl;
for(i=0; i<maxfilm; i++)
{
cout << "Film " << i+1 << " heisst " << film[i] << "\n";
}
*/
}
int readnumber() //Funktion zum Einlesen und anschließendem Umwandeln einer Zahl
{
string in;
getline(cin, in);
int ergebnis=-1;
ergebnis=atoi(in.c_str());
return ergebnis;
}
Danke für jede Hilfe und Verbesserung
Zuletzt bearbeitet von einem Moderator: