Frage zum Speichern & Laden von Datein
-
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)
-
CodeFinder schrieb:
LOL, wer hat den bitte sowas erfunden ?!, das ist doch total sinnlos

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

Nö, macht doch nur, was man ihm sagt
const char *constant; char *not_constant = ( char* ) constant;er wandelt "const char*" nach "char*". Der eigentliche Pferdefuß ist der, daß sowas in C mal eben so aus versehen passiert. In C++ ist es wegen des const_cast< > operators nicht mehr möglich, sich "aus versehen" in's Knie zu schießen. Dazu braucht's dann halt 'ne gehörige Portion Absicht.

CodeFinder schrieb:
[...] Einer meiner Compiler meckert auch bei deiner ersten Funktion (MVC++ 6.0)
Das ist auch gut so! Aber denkst du nicht, du solltest ihn dann mal "in Frieden ruhen" lassen!?
Greetz, Swordfish
-
obwohl die beschränkung, dass von den template-style casts nur const_cast in der lage ist, const-qualifikation wegzucasten, wichtig ist, so ist doch ein C-style cast noch in anderer hinsicht etwas ganz anderes als ein static_cast.
als faustregel gilt, dass mit static_cast alle die konvertierungen möglich sind, die auch implizit erlaubt sind, sowie deren umkehrungen (mit ausnahme des wegcastens von const)
ein C-style cast hat, in derselben situation angewandt, denselben effekt. er erlaubt allerdings noch weitere konvertierungen: solche, die ein static_cast mit einem const_cast kombinieren. und solche, die sonst nur mittels reinterpret_cast (ggf. ergänzt mit const_cast) möglich sind. das bedeutet, dass ein bestimmter ausdruck, der einen c-style cast enthält, möglicherweise kontextabhängige bedeutung hat (was eigentlich immer schlecht ist). beispiel:struct A; struct B; B* foo(A* p) { return (B*)p; } // reinterpret_cast<B*>(p); struct A {}; struct B: A {}; B* foo(A* p) { return (B*)p; } // static_cast<B*>(p);das schlimme daran ist, dass ein compiler hier nicht einmal warnt, wenn der cast al s reinterpret_cast interpretiert wird.
-
Swordfish schrieb:
Nö, macht doch nur, was man ihm sagt
Ja, klar macht er, was man ihm sagt...aber findest du die Idee eines const-Casts sinnvoll (mal davon abgesehen der ein const-Cast in C++ offentlichtlicher ist) ? - Hast du den jemals verwendet ?

Also irg.-wie strebt der gegen meine Logik

Swordfish schrieb:
Das ist auch gut so! Aber denkst du nicht, du solltest ihn dann mal "in Frieden ruhen" lassen!?
Greetz, Swordfish
Jo auf jeden Fall
naja der Comp. is sowieso voller Bugs... 
PS: Danke nochmal für das erläuternde Beispiel bzgl. C/C++ und const-Casts

-
CodeFinder schrieb:
Ja, klar macht er, was man ihm sagt...aber findest du die Idee eines const-Casts sinnvoll (mal davon abgesehen der ein const-Cast in C++ offentlichtlicher ist) ? - Hast du den jemals verwendet ?

Also irg.-wie strebt der gegen meine Logik

Ja, ist praktisch, wenn man an Code von anderen darf, die keine Ahnung von const correctness haben.