C++ Textdatei editieren
-
hmmm das krieg ich auch noch hin... ein mom pls
-
Ok dankeschön schonmal im vor raus

-
#include <iostream> #include <cstdlib> #include <string> #include <fstream> using namespace std; int main() { string Pfad, text,completly; int searched,ever; cout<<"pfad ?"<<endl; getline(cin,Pfad); ifstream datei; datei.open (Pfad.c_str()); { while (ever) { getline(datei,text); completly += text; if (text != "") { completly += "\n"; } cout<<completly; cin.get(); if (text == "") { break; } } } ofstream file; file.open (Pfad.c_str()); { while (searched!=1) { completly += "Test4"; completly += "\n"; cout<<completly; file << completly; searched = 1; break; } cout<<"successfully completed"; } file.close(); cin.get(); return EXIT_SUCCESS; }war nur eine kleine änderung. aber falls die datei mit einer Milliarde "LEERZEICHEN" aufhört schreibt er das Test4 dahinter.
-
ich schreibe jetzt nur noch für einen Variablen anhang. moment kommt gleich

-
@Tim06TR Dein Einlesevorgang ist ne Endlosschleife, du setzt nirgends "ever".
Besser ist das hier:
while(getline(datei,text)) { //do something }
-
Ich glaub ich steh auf der leitung ^^
könntest du das bitte in meinen Code als beispiel einmal einfügen? Wüsste gerade nicht wie bzw. wo ich das einfügen müsste

danke

-
ich weiß, dass die endlos ist soll auch so sein.
ich teste mal mit:
while (getline(datei,text))
{}
-
#include <iostream> #include <cstdlib> #include <string> #include <fstream> #include <windows.h> using namespace std; int main() { string Pfad, text,completly,anhang; int searched,ever; cout<<"Was wollen sie anfuegen?"<<endl; getline(cin,anhang); cout<<"pfad ?"<<endl; getline(cin,Pfad); ifstream datei; datei.open (Pfad.c_str()); { while (getline(datei,text)) { getline(datei,text); completly += text; cout<<text; cin.get(); if (text != "") { completly += "\n"; } cout<<completly; cin.get(); if (text == "") { completly += "\n"; break; } } } ofstream file; file.open (Pfad.c_str()); { while (searched!=1) { completly += anhang; completly += "\n"; cout<<completly; file << completly; searched = 1; break; } cout<<"successfully completed"; } file.close(); cin.get(); return EXIT_SUCCESS; }So das ist jetzt Perfekt ^^
EDIT: argh mist da ist noch was kaputt
-
hmm Dreifach post ... egal sonst merkts keiner:
HIER SO IST ES RICHTIG: (man kann noch die cout "wegkommentaren"EDIT:
------------------------------------------------------#include <iostream> #include <cstdlib> #include <string> #include <fstream> #include <windows.h> using namespace std; int main() { string Pfad, text,completly,anhang; int searched,ever; cout<<"Was wollen sie anfuegen?"<<endl; getline(cin,anhang); cout<<"pfad ?"<<endl; getline(cin,Pfad); ifstream datei; datei.open (Pfad.c_str()); { while (ever!=1) { getline(datei,text); completly += text; //cout<<text; //cin.get(); if (text != "") { completly += "\n"; } //cout<<completly; //cin.get(); if (text == "") { break; } } } ofstream file; file.open (Pfad.c_str()); { while (searched!=1) { completly += anhang; completly += "\n"; //cout<<completly; file << completly; searched = 1; break; } cout<<"successfully completed"; } file.close(); cin.get(); return EXIT_SUCCESS; }EDITEND: jetzt ist es schöner
-----------------------------------------------
jetzt gets ENDLICH
@ Firefighter
beiwhile(getline(datei,text)) { //do something }fehlt dann die erste Zeile !!!
-
Wenn sie unendlich ist, wozu machst du das dann? Auf dein break Kriterium kannst du dich nicht verlassen.
Achja das zweite getline innerhalb der while brauchste nicht mehr, macht ja schon das getline im Schleifenkopf.
-
ich weiß dass das unzuverlässig ist. machs mal schöner! wie höre ich am ende der Datei auf ?
while(!file.eof)
ist doch doof
-
while(getline(datei,text)) { //mach was }Hört automatisch auf, sobald nichts mehr zu lesen da ist.
-
Du hast mir damit gerade einen großen gefallen getan ! JUHU. ich kann den Code EXTREM gut für meinen File encoder gebrauchen. Ich danke dir. (ich hatte so ein scheiß bug bei manchen dateien mit meiner Methode und so wirds gehen. JA
-
Könnte einer von euch bitte mal den Code in unseren Code einfügen weil wir nicht genau wissen wo und wie er eingefügt werden muss. Da wir erst seit heute mittag uns mit C++ beschäftigen und beschlossen haben erst wenn das geht, gehen wir schlafen
doch leider wussten wir vorher nicht, das es so kompliziert wird.Danke für die Hilfe!
#include <iostream> #include <fstream> #include <stdio.h> #include <windows.h> using namespace std; using std::ofstream; using std::endl; int main() { int f1; cout << "Test (1) Ja (2) Nein"; cin >> f1; if(f1==1) { cout << "Test 1" << endl; cin.get(); ofstream Datei_aus; Datei_aus.open("test.txt", ios_base::out); Datei_aus << "Text 1" << endl; Datei_aus << "Text 2" << endl; Sleep(2000); } if(f1==2) { cout << "Test 1" << endl; cin.get(); ofstream Datei_aus; Datei_aus.open("test.txt", ios_base::out); Datei_aus << "Text 1" << endl; Datei_aus << "Text 2" << endl; Sleep(2000); } int f2; cout << "Test (1) Ja (2) Nein"; cin >> f2; if(f2==1) { cout << "Test 2" << endl; cin.get(); ofstream Datei_aus; Datei_aus.open("test.txt", ios_base::out); Datei_aus << "Text 3" << endl; Datei_aus << "Text 4" << endl; Sleep(2000); } if(f2==2) { cout << "Test 2" << endl; cin.get(); ofstream Datei_aus; Datei_aus.open("test.txt", ios_base::out); Datei_aus << "Text 3" << endl; Datei_aus << "Text 4" << endl; Sleep(2000); } }
-
Ich verstehe nicht ganz was der script bezwecken soll ?
wenn ich das compile fragt das prog zuerst test 1 ja oder nein und dann test 2 ja oder nein.
in die entstehende Datei schreibt das prog dann test 3 und test 4.
Aber ich dachte das prog soll eine Datei öffnen und dann irgendein text anfügen ???
EDIT: dein code würde ich wegschmeißen, fühle dich nicht beleidigt und benutz lieber mein, auch wenn du dabei nix lerntst, glaub mir es ist besser so

-
Ich weiß ja wirklich nicht ob ich das Problem des OP wirklich umrissen habe.
Aber es geht doch nur darum, in eine x-beliebige textdatei ein "Test 4" in die letzte Zeile zu klatschen, oder?
Sollte das der Fall sein, warum nicht so:#include <iostream> #include <fstream> #include <string> int main () { std::string filestr; std::cout << "Datei: "; std::getline (std::cin, filestr); std::ofstream file (filestr.c_str(), std::ios::app); if (!file.is_open()) { std::cerr << "Konnte Datei nicht oeffnen!" << std::endl; exit(1); } file << "\nTest 4\n"; file.close(); }Falls ich da was falsch verstanden habe, bitte meinen Post ignorieren

-
bitte in c++ kein exit(1) nehmen. return 1 würde reichen.