UnderTears Geschrieben 2. März 2006 Geschrieben 2. März 2006 Huhu, ich hab ne Aufgabe von meinem Ausbilder bekommen die folgendermaßen lautet: Erstelle ein Programm, das eine Datei Seitenweise, d.h. eine vorgegebene Anzahl von Zeilen auf einmal, auf den Bildschirm ausgibt. Die Ausgabe kann mit folgenden Befehlen, die über die Tastatur eingeben werden, gesteuert werden: 1. q – Verlassen des Programms 2. d – nächste Seite 3. u – vorhergehende Seite Der Dateiname und die Anzahl der Zeilen pro Zeile sollen interaktiv eingegeben werden. Das ganze sieht jetzt dann folgender maßen aus... #include <iostream> #include <fstream> #include <string> #include <stdlib.h> using namespace std; int main() { int i = 0; int lines = 0; int linesstd = 0; char filename [255]; char wahl; string s; cout << "Wieviele Zeilen sollen ausgegeben werden? "; cin >> linesstd; lines=linesstd; cout << "Bitte geben Sie den Dateipfad an: "; cin >> filename; fstream file(filename); if(!file) { cout << "Datei nicht gefunden:" << filename << endl; } while(linesstd > i) { getline(file,s); cout << s << endl; i++; }; while (wahl != 'q') { cout << "Wollen Sie die naechste Zeile ausgeben(d)" << endl; cout << "oder die vorhergehende Zeile (u) ausgeben?" << endl; cin >> wahl; if (wahl == 'd') { lines = linesstd+lines; while(lines > i) { getline(file,s); cout << s << endl; i++; }; } else if (wahl == 'u') { ???"vorherige zeile (theoretisch)" ??? } else if (wahl == 'q') { system("PAUSE"); } else { cout << "Ungueltige Wahl!\n"; } } return 0; system ("PAUSE"); } funktioniert bis dahin auch, aber ich weiß nicht wie ich es realisieren soll, dass er die vorherige Zeile ausgibt :confused: Hoffe ihr könnt mir helfen
UnderTears Geschrieben 2. März 2006 Autor Geschrieben 2. März 2006 Ich soll es nicht über ein Array realisieren, das war auch meine Idee, da könnte ich ja problemlos hoch und runter zählen...
UnderTears Geschrieben 2. März 2006 Autor Geschrieben 2. März 2006 Davon hab ich noch nichts gehört *zugeb* Ich werde mal meister Google bemühen.
UnderTears Geschrieben 2. März 2006 Autor Geschrieben 2. März 2006 Ich habe grade mal das hier: else if (wahl == 'u') { lines = 0; while (lines < linesstd) { getline(file,s); cout << s << endl; lines++; cout << lines << endl; } probiert. Wieso klappt das nur beim der ersten u-Eingabe und geht hinterher weiter als hätte ich d eingegeben? Boah C++ wird mir immer unsympathischer:floet: Und nochwas: Wieso schreibt er in die Datei? Dazu forder ich doch nirgends auf?:eek
Klotzkopp Geschrieben 3. März 2006 Geschrieben 3. März 2006 Wieso klappt das nur beim der ersten u-Eingabe und geht hinterher weiter als hätte ich d eingegeben?Weil dein Algorithmus falsch ist. Du solltest zuerst einen Algorithmus formulieren, und den dann in C++ umsetzen. Deine jetztige Vorgehensweise ist eher ein Mischmasch aus beidem - "Ich hab mal probiert". Das geht vor allem dann in die Hose, wenn man in C++ noch nicht so recht sattelfest ist. Oder du zerlegst das Problem in Teilprobleme: Schreib doch erst mal ein Programm, dass die ganze Datei in einen Vector aus Strings einliest, und diesen Vector ausgibt. Boah C++ wird mir immer unsympathischer:floet: Du solltest wirklich nicht die Sprache für deine Unzulänglichkeiten verantwortlich machen :floet: Und nochwas: Wieso schreibt er in die Datei? Dazu forder ich doch nirgends auf?:eekWie äußert sich das denn, dass "er" in die Datei schreibt?
UnderTears Geschrieben 3. März 2006 Autor Geschrieben 3. März 2006 Du solltest wirklich nicht die Sprache für deine Unzulänglichkeiten verantwortlich machen :floet: Ok, überredet Wie äußert sich das denn, dass "er" in die Datei schreibt? Also "Er" kopiert lines mehrfach in die Datei, erweitert Zeilen durch Zaheln etc... Eine Logik hab ich dahinter leider noch nicht entdeckt
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden