Frage zum Speichern & Laden von Datein
-
hallöle,
ich wollte mich heute mal nen bissel shclauer machen in bezug auf -> Datein speichern & laden.
kann ich ein programm schreiben mit "ifstream" die daten in die datei speichern UND dann nen anderes programm schreiben und mit "ofstream" die gespeicherten daten der der datei vom programm eins ausgeben lassen?, ich denke mal es geht sicher... vieleicht so?:#include <iostream> #include <fstream> using namespace std; int main() { // hier das erste Programm nur fuers schreiben!!!!============================== ifstream schreiben; char text[50]; cout << " Gib hier einen Text ein den du spaeter speichern willst.\n" << " (max. 50 Zeichen!)\n\n\t Text: "; schreiben.open("C:\\Keule"); if (schreiben.good()) { cin.getline(text, sizeof(text)); cout << text << endl; } if(schreiben.fail()) { cout << "! Fehler: zu viele Zeichen !"; cin.clear(); cin.sync(); } schreiben.close(); // und hier das zweite programm zum lesen ====================================== ofstream lesen; lesen.open("C:\\Keule"); if (lesen.good()) { cin.getline(text, sizeof(text)); } if (lesen.bad()) { cout << "! Fehler: Datei nicht gefunden"; } }so und gefähr vieleicht??, noch was wenn ich da über 50 zeichen setze, müsste ja eigentlich die fehlermeldung ausgegeben werden, hm die bloede console schliesst aber gleich wieder.. jajaa schreit mich ruhig an ich weiss es wurde schon 20000000000000Mal hier gefragt, aber ich habs ausprobiert und es ging irgendwie trotzdem net...
also wär cool wenn mir wer zeigt wie des mit den 2progs geht und evtl. noch des prob mit der fehlermeldung behebt thanX
-
Damit das Fenster nicht andauernd zu früh zu geht:
#include <iostream> using namespace std; int main() { // Quellcode hier einfügen cin.sync(); cin.get(); return 0; }Außerdem nutzt man den ifstream zum lesen und den ofstream zum schreiben.
-
oh also hab ich des vertauscht hehe... aba bleibt trotzdem die frage offen... kann man das so machen wie ich des will? und kann ich einfach den pfad so bei open() und close() angeben?
-
ich weiß, ich bin fies, gemein und penetrant, aber wenn du etwas über Dateien wissen möchtest, fang bitte bei der Rechtschreibung an..
Der ifstream ist ein INPUT FILE STREAM (Das ist englisch für Eingabe Datei Strom)
und wenn du etwas in eine Datei schreiben möchtest, ist das eine Ausgabe..Aalso probier mal ofstream schreiben.

Es gibt übrigens tolle cpp Referenzen im Netz..
-
aha schön schön.... und wieso bleibt der text net in der text datei oO.... immer is die datei 0kb gross... was mach ich falsch?
-
SO leute passt schon habs langsam selber raus gefunden wies geht hehe...
#include <iostream> #include <fstream> using namespace std; char quickinfo[25]; int main() { ofstream termin("C:\\Termin.txt",ios::app); termin.open("C:\\Termin.txt"); if(termin.bad()) { cerr << " Datei konnte nicht geoeffnet werden !"; } cout << " Info.\n\n"; cout << " Geben sie hier eine kleine Info fuer den Termin an: " << " (max. 256 Zeichen !\n\n"; cin.getline(quickinfo, sizeof(quickinfo)); termin << quickinfo; termin.close(); if(termin.good()) { cerr << " Info wurde erfolg rich gespeichert ! " << endl; cin.get(); } else(termin.bad()); { cerr << " Fehler: Info konnte nicht gespeichert werden ! " << endl; cin.get(); } return 0; }klappt alles.. nur was mir aufgefallen ist... das sich das schliessen der console nicht verhindern laesst, wenn man mehr als erlaubte zeichen eingibt, dann raucht die console von alleine ab.... oder laesst sich des doch verhindern???
ansonsten thanx und die topic is hier mit fuer geschlossen erklärt
topic.close()
-
Hallo
Benutz statt char doch einfach std:string alles wird gut.
chrische
-
Bezüglich des Schliessens der Konsole gabs doch schon einen Link in deinem alten Thread. Lies bitt da nochmal nach. cin.get() allein tut es nämlich auch nicht
http://www.c-plusplus.net/forum/viewtopic-var-t-is-150600-and-postdays-is-0-and-postorder-is-asc-and-start-is-20.html
-
ich sitze hier shcon seit 2stunden und lesen im forum rum..... ich lese neben bei noch des tutorial, ABER ich komm einfach nicht drauf wie ich meine so eben gespeicherte datei wieder öffne um sie in der konsole auszulesen
also
text: blo lbo blo.... -> gespeichert -> C:\\Knut
jetzt will ich mit nen anderen prog genau diese datei oeffnen damit ich sie auslesen kann um den text in der konsole zu lesen... wuuuuhaaaaa aber wie?????

-
ifstream datei ("dateiname");?!
-
#include <iostream> #include <fstream> using namespace std; main() { ifstream GetInfo("C:\\Termin"); GetInfo.open("C:\\Termin"); cout << " Termin Info:\n\n"; GetInfo >> "C:\\Termin"; GetInfo.close(); cin.get(); }geht nicht..... sorry ich weiss ich stell mich doof an.... kanns mir nun mal einer gerade richten ThanX
-
Versuchs mal folgender maßen:
#include <iostream> #include <fstream> using namespace std; int main() { ifstream GetInfo; char Text[50]; //war vorhin auch nur 50 GetInfo.open("C:\\Termin.txt", ios::in); cout << " Termin Info:\n\n"; GetInfo.read(Text, 49); // in das char-Array speichern cout << Text; // Ausgabe GetInfo.close(); cin.sync(); //Tastaturpuffer löschen cin.get(); // auf ENTER warten return 0; }
-
hi... ich hätte da mal noch ne frage zu:
#include <iostream> #include <fstream> using namespace std; int main() { ifstream GetInfo; char Text[50]; // HIER AUCH STRING MÖGLICH??? GetInfo.open("C:\\Termin.txt", ios::in); cout << " Termin Info:\n\n"; GetInfo.read(Text, 49); // UM STRING HIER ZU NUTZEN cout << Text; GetInfo.close(); cin.sync(); cin.get(); return 0; }wollte wissen ob man statt char taxt[] auch nen string benutzen cann da mein protokoll ja doch dach schoen lang wird... koennte mir jmd. dann mal hier ein Beispiel posten um zu veranschaulichen wies mit nen string geht... dnake!!
-
zum Beispiel:
#include <iostream> #include <fstream> #include <string> using namespace std; int main( ) { ifstream file( "D:\\Termin.txt" ); string text; do { text += static_cast< char >( file.get( ) ); } while( !file.fail( ) ); file.close( ); cout << text; }Greetz, Swordfish
-
hmmm ja ne shon klar gg... gehts net noch nen bissel einfacher verstaendlicher sword??? hab mich mit static_cast noch net so beschaeftigt....trotzdem thanX
-
ein static_cast entspricht einem einfachen C-Type-Cast:
also das ist gleichbedeutend:
int i; long l = 34687; i = static_cast<int>(l);==
int i; long l = 34687; i = (int)l;
-
ein static_cast entspricht einem einfachen C-Type-Cast:
Das ist so nicht ganz korrekt. Mit einem C-Cast kann man z.B. ein const wegcasten. Mit einem static_cast geht das nicht (dafür gibt es const_cast).
-
Da könnt' sich doch mal jemand der Mod's erbarmen und einen FAQ Beitrag zu den verschiedenen Casts schreiben.
Greetz, Swordfish
-
Z2 schrieb:
ein static_cast entspricht einem einfachen C-Type-Cast:
Mit einem C-Cast kann man z.B. ein const wegcasten.
Ahja...und wie ?
-
so:
#include <iostream> using namespace std; #ifdef STUPID_COMPILER void no_cast_away( const char *untouchable ) { // Sollten nur dämliche Compiler - wenn überhaupt - zulassen // meiner: error C2166: L-Wert gibt ein konstantes Objekt an untouchable[ 1 ] = 'a'; } #endif /* STUPID_COMPILER */ void c_cast_away( const char *untouchable ) { // Hups, const ist weg: ( (char*) untouchable )[ 1 ] = 'a'; } void cpp_cast_away( const char *untouchable ) { // mit C++ muss man sich wissentlich in's Knie schießen: const_cast< char* >( untouchable )[ 1 ] = 'a'; } int main( ) { char *foo = new char[ 10 ]; strcpy( foo, "Hello!" ); cout << "original: " << foo << endl; c_cast_away( foo ); cout << "after c_cast_away( ): " << foo << endl; strcpy( foo, "Hello!" ); cpp_cast_away( foo ); cout << "after cpp_cast_away( ): " << foo << endl; delete [ ] foo; }Greetz, Swordfish
-
LOL, wer hat den bitte sowas erfunden ?!, das ist doch total sinnlos

Wenn ich const haben will, dann will ich auch const haben

Aber ok 'leuchtet ein'^^...
PS: Einer meiner Compiler meckert auch bei deiner ersten Funktion (MVC++ 6.0)