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

hmmmmm....vielleicht....ich habs damit ne weile probiert, ging nich!

Ich glaub das ist nur für datenströme, d.h. tastatureingaben, etc., ....

...,oder?!?

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

I LOVE THIS FORUM ;)

VIELEN DANK ERSTMAL AN EUCH ALLE ! ! !

...so macht ein forum spass!!!

aber eins noch:

was bedeutet "casten" ?

("... , in ein char* gecasteten int, ...")

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

Sehr schön DAAAAANKEEEE!!!

jetzt blick ich schon besser durch! aber ich kann so keinen text mit leerzeichen lesen/speichern. was mach ich denn nun da?

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.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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