Zum Inhalt springen

Variablen in/aus .txt - datei speichern/lesen...


Empfohlene Beiträge

Geschrieben

AHA!!!

genau DAS hab ich gesucht (denk ich zumindest) !!!

big THX!!!

....habs nämlich ewig mit ofstream probiert....da läuft das ja so ähnlich ab...aber nicht ganz gleich, wie ich erfahren musste ;)

Geschrieben

hmmmmnaja....ich will ja ne variable speichern und in diese auch wieder einlesen...habs mit ofstream nicht hinbekommen, denke weils kein stream ist, sondern ne speicherstelle halt....vielleicht kannst du das ja mal machen ;)

Geschrieben
Original geschrieben von capone007

habs mit ofstream nicht hinbekommen, denke weils kein stream ist, sondern ne speicherstelle halt....vielleicht kannst du das ja mal machen ;)

fstream ist ein stream, wie der Name schon sagt ;)

Ein Minimalbeispiel: Ein int schreiben und lesen

#include <fstream>
using namespace std;

int main(int argc, char* argv[])
{
int var = 42;
ofstream schreiben( "test.dat", ios::binary );
schreiben.write( reinterpret_cast<char*>( &var ), sizeof( var ) );
schreiben.close();

int var2 = 0;
ifstream lesen( "test.dat", ios::binary );
lesen.read( reinterpret_cast<char*>( &var2 ), sizeof( var2 ) );
lesen.close();
}[/CODE]

Geschrieben

oje oje....du hast doch ETWAS mehr ahnung als ich (1.ausbildungsjahr!)....zu dem code kann ich nur sagen : HÄÄHHHHHH?!?!?

aber trotzdem vielen dank, wer´s nachher mal probieren, wenns funzt dann funzt es, wenn nich dann nich!!!

auf jden fall THXXXX!!!

Geschrieben
Original geschrieben von capone007

oje oje....du hast doch ETWAS mehr ahnung als ich (1.ausbildungsjahr!)....zu dem code kann ich nur sagen : HÄÄHHHHHH?!?!?

Ist aber doch bei genauerer Betrachtung gar nicht so schwer:)

ofstream schreiben( "test.dat", ios::binary );

Legt ein ofstream Objekt an und übergibt diesem den Dateinamen und die Art wie

sie geöffnet werden soll, nämlich binär.

schreiben.write( reinterpret_cast<char*>( &var ), sizeof( var ) );

Ruft die write() Funktion des ofstream Objekts auf, die den, in ein char* gecasteten

int, in die test.dat schreibt.

schreiben.close();

schließt die Datei wieder.

und der Rest ist das selbe nur andersrum;)

Gruß

Guybrush

Geschrieben

Ein cast bedeutet wenn du dem Kompiler sagst er soll eine Variable anders

interpretieren. Also anstatt als int, als char usw.

Das geht natürlich nicht mit allen Datentypen und oft kann es passieren das

dabei Daten verloren gehen. Zum Beispiel wenn du einen Fießkommawert in

eine Ganzzahl castest.

Geschrieben

... ich komm gar nich klar damit!

wie kann ich jetzt GANZ KONKRET das array

char Test[100];

in eine .txt datei saven und später wieder in das array laden?

kannst du mir dazu mal jeweils eine Möglichst einfache funktion schreiben ?!?

Geschrieben
char Test[100];
// schreiben
ofstream schreiben( "test.txt", ios::binary );
schreiben.write( Test, sizeof( Test ) );
schreiben.close();
// lesen
ifstream lesen( "test.txt", ios::binary );
lesen.read( Test, sizeof( Test ) );
lesen.close();[/CODE]

Geschrieben
Original geschrieben von capone007

aber ich kann so keinen text mit leerzeichen lesen/speichern. was mach ich denn nun da?

Dieser Quellcode funktioniert völlig unabhängig vom Inhalt des Arrays. Wenn du Probleme mit Leerzeichen hast, liegt der Grund dafür an anderer Stelle. Da müsstest du schon den Rest deines Codes zeigen.
Geschrieben

hmm....

soweit ich weiß, liegt ein anderes Problem von Capone vor ...

(weiß das genau, da ich mit ihm auf einer arbeit bin ^^)

der oben genannte Code funktioniert nur mit Visual C++ :(

da wir aber durch die berufsschule Borland C++ 5.01 benutzen, werden diese Funktionen nicht klappen :(

(habe das zu hause scho probiert ... oder ich bin einfach zu blöd dafür ...)

hmm...gibbet da nen genauen Befehl, mit auch Borland klarkommt ?

Geschrieben
Original geschrieben von capone007

"using namespace std;" is doch nur C und nich C++, oder?!?

Nein, using ist ausschließlich C++, in C gibt's so etwas nicht.

wofür is das eigentlich ?
Es gibt using-Direktiven und using-Deklarationen.

Das Beispiel hier ist eine using-Direktive. Alle Klassen der C++-Standardbibliothek befinden sich in einem namespace mit dem Namen std. Wenn man sie benutzen will, muss man also schreiben:

std::string s( "huhu" );
std::cout << s << std::endl;[/CODE]

(ohne Koenig-Lookup müsste man sogar den Namespace vor den operator<< setzen)

Durch die using-Direktive werden aber die Inhalte des bezeichneten namespace in den globalen namespace gehoben, d.h. man kann ohne std:: darauf zugreifen.

using-Deklarationen verwenden man in Klassendeklarationen, um den Zugriff auf überladene Methoden von Basisklassen zu ermöglichen.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...