Zum Inhalt springen

UnderTears

Mitglieder
  • Gesamte Inhalte

    11
  • Benutzer seit

  • Letzter Besuch

Beiträge von UnderTears

  1. Du kannst meiner Meinung nach 2 Methoden machen:

    1) Du liest die komplette Datei ein, jede Zeile ein Array-Eintrag, und gibst dann nur die letzten n aus.

    Wie schreibe ich denn in ein Array? Ich habe da noch 0 mit zu tun gehabt:(

    Das hätte ich gern gemacht, aber...mir fehlt irgendwie das logische Verständnis zur Umsetzung.

    Die ersten n Zeilen von vorne, ist ja kein Problem, das hab ich neulich ja auch hinbekommen. Nur wie lasse ich zum Ende der Datei springen? Und von da rückwärts auslesen? Da bin wohl zu blöd für....:hells:

  2. Ne, die mache ich schon lieber selbst :D

    Ich müsste wissen wie ich ne vorhandene Datei in ein Array schreiben kann und evtl. noch wie sich der Zugriff regelt.

    Oder gibt es irgendeine andere Möglichkeit die Zeilen aus der Datei quasi rückwärts auszulesen?

  3. Huhu,

    nun hab ich die nächste Hausaufgabe, die folgendermaßen lautet

    "Erstellen sie ein Programm, das die letzten n Zeilen einer Textdatei ausgibt, wobei n wählbar ist. Die Angabe des Dateinamens, ebenso wie die Anzahl der auszugebenden Zeilen werden interaktiv eingeben.

    Fehlerbehandlung bei fehlerhaften Eingaben ist vorzusehen.

    Es ist in Ordnung, wenn n einen Maximalwert hat und die Zahl der Zeilen zwischen dem 1 und dem Maximalwert gewählt werden kann."

    Meiner Meinung nach MUSS ich das über ein Array irgendwie lösen, denn in einer Datei vom Ende zum Anfang zählen wird schwer, oder ist sogar unmöglich?

    Da ich aber noch nie mit Arrays gearbeitet habe *schäm* habe ich noch keinen blassen Schimmer wie ich das realisieren soll :(

    Wäre lieb wenn ihr mir helft :e@sy

    UnderTears

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

  5. 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

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

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...