Zum Inhalt springen

Algorhytmus zur Ausgabe aus Datei


UnderTears

Empfohlene Beiträge

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 :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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?:eek
Wie äußert sich das denn, dass "er" in die Datei schreibt?
Link zu diesem Kommentar
Auf anderen Seiten teilen

Du solltest wirklich nicht die Sprache für deine Unzulänglichkeiten verantwortlich machen :floet:

Ok, überredet :D

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 :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...