Internet-Serien fortschritt programm
-
danke ja aber ich bekommen leider den zusammenhang nicht hin wie ich mit
schleifen ihn dazu bekommen alle zeilen wiederzugeben anstelle nur der
ersten, wie im moment
-
Was macht getline?
Was machte eine Schleife?
Wie könnte man das wohl zusammen nutzen?
-
Naja mit einer Schleife kannst du einfach solange Zeilen ausgeben wie noch welche vorhanden sind. Da das wirklich zu den Grundlagen gehört solltest du selbst versuchen es zu programmieren.
-
texmex schrieb:
getline(lesen,data); cout << data << endl;wäre über tips sehr dankbar.

ich schreibe auf kubuntu mit einem texteditor (kate)Du liest doch hier nur genau eine Zeile, und die gibst Du dann aus, deshalb brauchst Du eine Schleife, die ALLE Zeilen liest und ausgibt, etwa so:
lies_eine_zeile; //Schleife Beginn solange_erfolgreich_eine_Zeile_gelesen_wurde { gib_die_gelesene_Zeile_aus; lies_eine_zeile; } //Schleife Ende
-
...endlich klappts
int main(int argc, char *argv[]) { string str; string text; ifstream file; file.open("Sverzeichnis.txt", ios::in); while (!file.eof()) { getline(file, text); cout << text << endl; } file.close(); ofstream schreiben; . . .danke leute

-
besser:
int main(int argc, char *argv[]) { string str; string text; ifstream file; file.open("Sverzeichnis.txt", ios::in); while (getline(file, text)) { cout << text << endl; } file.close(); ofstream schreiben; . . .
-
stimmt!
-
texmex schrieb:
stimmt!
Warum?
Weißt du die Antwort?
("Weil es kürzer ist und besser aussieht" gilt nicht!)
-
Hi, mein programm schreitet voran & sieht schon ansehnlich aus :p
Neue Serie eingeben .klappt
schreiben und ausgeben in datein .klappt
automatische nummerierung mit ausgabe .klappt
programm beenden .klapptkonsolen ausgabe
1. TV Total 13 2. TestSerie 22 3. Sportschau 55 4. X Factor 9 5. Der Preis ist heiß 11 6. Exclusive 30 7. NeueSerie 60 <Neue Serie eingeben oder mit Zahl auswählen zum editieren> <Enter zum beenden>Jetzt würde ich gern die Option hinzufügen,
dass bei drücken der ensprechenden Zahl, ich die Folgen-Ziffer ändern kann. (die listen länge ist ja variabel)Die schwirigkeit vor der ich jetzt stehe.. in Zeile 61 würde ich jetzt gerne starten mit,
schaue wieviele zeilen zahlen in der datei sind, wenn eine von den vorhandenen zeilennummern gedrückt wird,
rufe die folgen anzahl zum editieren auf.ich weiß leider nicht wie ich das hinbekommen kann..
deswegen bin ich über jeden Rat froh

#include <iostream> //std gruppe #include <fstream> //ein und ausgabe stream #include <string> //sätze #include <string.h> #include <iomanip> //u.a. zeilen einrückungen using namespace std; int main(int argc, char *argv[]) { string str; string folge; cout << "\n"; ifstream read_stream("Verzei.txt"); // Dieser block if (!read_stream) // setzt die return 1; // durchnummerierung.... 1. 2. 3. ofstream write_stream("outVerzei.txt"); // bis alle zeilen beschriftet sind. if (!write_stream) // Er liest dafür die bearbeitungsdatei aus und übergiebt den inhalt mit nummerierung return 1; // in die out datei, diese wird oben zum start dann wiedergegeben string line; for (size_t i = 1; getline(read_stream, line); ++i) write_stream << i << ". " << line << endl; //in dem bereich gibt er die auflistung wieder string text; ifstream file; file.open("outVerzei.txt", ios::in); while (getline(file, text)) { //schleife , sonst gibt er nur die erste zeile wieder cout << text << endl; } file.close(); ofstream schreiben; //..eingabe Bereich, bennenung der Serie //hinzu kommen soll bei eingabe der ensprechenden Serien Nummer schreiben.open("Verzei.txt", ios::out|ios::in|ios::app); //den eintrag der folgen"Zahl" editieren zu können.. cout << "\n" << "<Neue Serie eingeben oder mit Zahl auswählen zum editieren> <Enter zum beenden>\n" << "\n"; //im moment ist nur die Serien benennung möglich getline(cin,str); if(str == "" ) return 0; //wenn nichts eingegeben wird, wird programm beendet schreiben << str << " "; cout << "nun bitte die Folge: "; getline(cin,folge); schreiben << folge << endl; schreiben.close(); cout << "\n" << "Die neu aufgenommene Serie ist \"" << str << "\" Folge : " << folge << endl; return 0; }
-
bitte irgend jemand..
-
Serien zu bearbeiten ist schon ein etwas komplizierteres Vorhaben. Da es schwierig ist direkt in der Datei Zeilen zu ändern würde ich die Serienliste komplett einlesen und in einem
std::vectoroder so zu speichern. Anschließend kannst du denvectorbeliebig bearbeiten, Serien hinzufügen, löschen und bearbeiten. Beim Beenden des Programms (oder meinetwegen auch nach jeder Änderung) schreibst du alles in deine Datei.Eine Schwierigkeit ist dann noch eine Zeile in deiner Datei in Name der Serie und Nummer der Folge zu trennen. Ist dir klar, dass dein aktueller Code alles als Folge akzeptiert und nicht nur Zahlen? Wenn Folgen nur Zahlen sein dürften dann kann man die Folge einfach als den Block nach dem letzten Leerzeichen identifizieren.
-
Hallo sebi707, danke für deine tips
das mit dem einlesen ü zb. vectoren werde ich mir gleich mal zu gemüte führen!
Ja es ist mir klar das im moment die ganze zeile noch zu unstrukturiert ist, deswegen habe ich schon an so eine schreibweise gedacht:
1;TV Total;13
um die teil bereiche besser ansprechen zu können, aber wusste auch nicht genau nach welchem thema ich da suchen muss.
danke erstmal!
-
Ein Trennzeichen zwischen der Serie und Folge ist auch nicht verkehrt, wenn für die Folgen weiterhin Strings erlaubt sein sollen. Dann muss man nur gucken, dass diese Zeichen nicht in den Strings vorkommen oder speziell markiert werden (Escapesequenzen). Ein Stichwort zum googeln wäre CSV (comma-sparated values). Wobei ich die Nummer der Serie nicht unbedingt speichern würde. Die ergibt sich ja aus der Position innerhalb der Datei.
Dein Programm kann man übrigens fast beliebig kompliziert machen. Von einer einfachen Lösung wo einfach der letzte Block mit Zahlen als die Folge interpretiert wird, über eine Lösung wo bestimmte Zeichen beides voneinander trennen mit Escapesequenzen usw. bis zu einer Lösung mit einer richtigen Datenbank.
-
Im moment würde ich aus zwei gründen den string für die folgen bevorzugen,
- A) es kann vorkommen, dass Serien die über mehrere Staffeln gehen auch so gespeichert weden können:
S2F11
für staffel 2 folge 11 zum beispiel.-
ich bei den char, float, long u.a sehe ich immer das diese beschrängt auf eine bestimmte länge sind, da frage ich mich wenn ich mal mehr oder weniger dann eingebe was passiert,.. ist eher nichts für diese sache glaube ichund Danke für dein Stichwort, sowas hatte ich gesucht! das passt doch..
Die Nummerrierung der zeile wollte ich nur dafür mit speichern das ich sie hier
1. TV Total 13 2. TestSerie 22 3. Sportschau 55 <Neue Serie eingeben oder mit Zahl auswählen zum editieren> <Enter zum beenden>zB durch drücken der 2 ,dann in die richtige zeile in der datei springe
ich würde natürlich gerne den einfachen weg gehen und nur mit dem letzten leerzeichen als abtrennung arbeiten aber das kann ich bei string ja vergessen

datenbank hört sich auch interesant an, wenn es dadurch dan kompfortabler wird mit den einträgen.. hm aber ist dann wohl zu umfangreich (:Lg
-
Die Zeile in der Datei ergibt sich aber schon automatisch und muss man nicht mit in die Datei schreiben. Wenn du die Zeilen mit reinschreibst hast du eventuell Lücken wenn du eine Serie löscht oder du musst die Nummer bei allen folgenden Serien ändern.
-
Oh ok ok..