Zum Inhalt springen

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


capone007

Empfohlene Beiträge

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]

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.
Link zu diesem Kommentar
Auf anderen Seiten teilen

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 ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...