Seite 1 von 2
Name in Datei schreiben
Verfasst: Fr Jun 26, 2009 4:21 pm
von G_loW
Hi Leutz,
ich hab ein kleines Proplem,
ich will einen namen in einer textdatei speichern und weiß net wie.
aus dem wiki werde ich auch net schlau.
da gibts zwar einige Beispiele aber die klappen bei mir net.
(

bestimmt is die lösung ganz einfach, ich komm nur net drauf

)
Code: Alles auswählen
#include <iostream>
#include <cstdio>
////////////////////////////////////////////
int main (void)
{
char Name[8];
FILE *file = fopen("testfile.txt", "w+");
std::cout<< "Bitte Name Eingeben \n";
std::cin>> Name;
// Hir Name in File schreiben
std::cout<< Name;
fclose(file);
return 0;
}
Re: Name in Datei schreiben
Verfasst: Fr Jun 26, 2009 4:37 pm
von Xin
G_loW hat geschrieben:aus dem wiki werde ich auch net schlau.
da gibts zwar einige Beispiele aber die klappen bei mir net.
Welche Seiten hast Du besucht, welche Beispiele funktionieren nicht? Und was verstehst Du nicht.
Das wäre wichtig, damit wir die Seiten verbessern können.
Code: Alles auswählen
#include <iostream>
#include <cstdio>
////////////////////////////////////////////
int main (void)
{
char Name[8];
FILE *file = fopen("testfile.txt", "w+");
std::cout<< "Bitte Name Eingeben \n";
std::cin>> Name;
// Möglichkeit 1:
fprintf( file, "%s", Name );
// Möglichkeit 2:
// fwrite( Name, strlen( Name ), 1, file );
std::cout<< Name;
fclose(file);
return 0;
}
Grundsätzlich wäre es natürlich auch nicht schlecht, wenn Du hier in beiden Fällen mit Streams arbeitest:
Re: Name in Datei schreiben
Verfasst: Fr Jun 26, 2009 4:49 pm
von G_loW
Das meine ich:
http://tutorial.proggen.org/doku.php?id ... io:freopen
Bei mir kommt immer "Datei konnte nicht geöfnet weden"
ich hab noch nie mit streams gearbeitet

Re: Name in Datei schreiben
Verfasst: Fr Jun 26, 2009 5:20 pm
von Xin
Ich schaue mir das nachher mal an.
G_loW hat geschrieben:Bei mir kommt immer "Datei konnte nicht geöfnet weden"
ich hab noch nie mit streams gearbeitet

cin und cout sind auch Streams.
Re: Name in Datei schreiben
Verfasst: Fr Jun 26, 2009 5:22 pm
von G_loW
ok, dann noch ne frage:
Was sind Streams?
Re: Name in Datei schreiben
Verfasst: Fr Jun 26, 2009 5:59 pm
von Xin
G_loW hat geschrieben:ok, dann noch ne frage:
Was sind Streams?
Streams beschreiben Datenströme. Du bindest sie ja bereits ein:
Code: Alles auswählen
#include <iostream>[/quote]
In C++ verwendest Du IoStreams, in C FILE-Streams. Die C++ Streams basieren (i.d.R.) auf den C-FILE-Streams, sie kommen sich also nicht irgendwo in die Quere, doch würde man üblicherweise sich für eine der beiden Streamsarten entscheiden. Also entweder cin/cout und die File-Streams (ifstream und ofstream) oder man verwendert die C-FILE-Streams (printf, fopen, fclose...)
Gemischt ist kein Problem (mache ich auch eher so, wie ich es brauche), es ist aber unüblich und eher weniger gern gesehen.
Re: Name in Datei schreiben
Verfasst: Fr Jun 26, 2009 6:02 pm
von nufan
Das liegt nicht an der Datei sondern am falschen if.
Code: Alles auswählen
if( !freopen( filename, "w", stdout ) )
printf( "Dieser Text landet in einer Datei\n" ); // erfolgreich geöffnet
freopen gibt bei Fehlern NULL zurück. Mal angenommen die Datei kann (aus welchem Grund auch immer) nicht geöffnet werden. !NULL ist auf jeden Fall nicht falsch. Das heißt wird die Datei korrekt geöffnet ergibt das erste if falsch und die Fehlermeldung im else wird ausgegeben. Außerdem wird die Datei bei dir doch angelegt, oder? Nimmst du also das ! weg, funktioniert es und printf (das normal auf den Bildschirm schreibt) schreibt in die Datei.
Wird natürlich sofort ausgebessert...
Re: Name in Datei schreiben
Verfasst: Fr Jun 26, 2009 8:19 pm
von G_loW
Ok, es klappt.
ich hab die erste Variante genommen da diese mir einfacher erscheind.
Allerdings hab ich damit ein proplem.
[quote="Xin]
[/quote]
Code::Blocks sagt mir: "ofstream was not declared in this scope"
Allerdings gehts auch ohne, oder ist das so wichtig?
Re: Name in Datei schreiben
Verfasst: Fr Jun 26, 2009 8:32 pm
von nufan
G_loW hat geschrieben:Code::Blocks sagt mir: "ofstream was not declared in this scope"
Der ganze Code wäre von Vorteil.
Wenn du Xin's Code genommen und die beiden Zeilen reinkopiert hast musst du noch den Namespace (std) für ofstream angeben.
Re: Name in Datei schreiben
Verfasst: Fr Jun 26, 2009 9:04 pm
von G_loW
So, jetz hab ich es fast^^
Ich benutze jetzt "ofstream" (is einfacher

)
Die letzte frage: Muss ich "ofstream" auch wieder schließen ?