String in bestimmte Zeile einer Datei schreiben (gotoxy)
-
Moin,
ich muss für die Schule einen Verschlüsselungsalgoritmus programmieren. Dafür habe ich mir überlegt in jeder Zeile bestimmte Zeichen zu vertauschen und auch die Zeilen selbst durchzutauschen. Ich arbeite mit den Klassen ifstream und ofstream. Um die in einer Datei in eine bestimmte Zeile schreiben zu können, ohne die vorherigen zu überschreiben, braucht man meines Erachtens nach eine Funktion wie diese:void gotoxy(short x, short y) { HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); COORD pos; pos.X=x-1; pos.Y=y-1; SetConsoleCursorPosition(hCon, pos); }Leider weiß ich nicht was ich verändern muss
Ich könnte stat dem STD_OUTPUT_HANDLE ja das Datei-handel übergeben, aber da SetConsoleCursorPosition() ja nur für den Curser in der Console zuständig ist wird das wohl nicht funktionieren...Hat vllt jemand eine Idee? Ich muss zu morgen fertig sein damit, also wäre über eine schnelle Antwort sehr dankbar

PS: Hier soll niemand meine Hausaufgaben machen. Ich hab mich schon intensiv damit beschäftigt, aber ich komme da einfach nicht weiter.

mfg blutgruppenutella
-
In C++ habe ich mich mit Files noch nicht beschäftigt, aber in vielen anderen Sprachen kann man beim öffnen des Files übergeben was man machen will. Beim öffnen also append modus verwenden.
Oder das File öffnen bis EOF lesen und dann schreiben sollte auch hinhauen.
-
Was du meinst würde funktionieren. Aber ich will die Daten ja nicht am Ende der Datei anhängen, sondern eine bestimmte Zeile mit einen String überschreiben.
Ich kann auch nicht soweit lesen bis ich bei der gewünschten Zeile bin und dann schreiben, denn dann muss ich die Datei ja mit dem Schreibattribut laden und der Pointer springt wieder zum Dateianfang.
Giebt es da nicht eine elegante Lösung für???
Am besten wäre wenn man wie in er Konsole dem Schreibpointer sagen könnte wo er stehen soll.
-
Oder einfach den ganzen Inhalt des Files in nen Container (z.b. vector) reinschreiben, dort nach der bestimmten Stelle suchen (oder wie auch immer) und dann an der gewünschten Stelle dein Text... einfügen !
So stelle ich mir das grad vor.
-
Gute Idee, da bin ich auch grade bei.
Kann mir jemand vllt schnell sagen wie ich ein String-Array mit dynamischer größe erstellen kann? Also ich meine :int i; i=785; string array[i];Wenn ich das versuche hängt sich das Programm immer an der Stelle auf wo das array inizialisiert wird. Ach ja, i ist bei mir keine feststehende Variable sondern wird im Laufe des Programms berechnet.
-
Schau dir mal std::vector an.
-
Ja, habe ich dir ja schon vorgeschlagen, std::vector zu nutzen !
Ansonsten per new, delete... kannste dir n dynamische Array bauen.