ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
863
863
EMPFEHLEN
-
21.08.04 13:25 #1
- Registriert seit
- Jul 2004
- Ort
- Weißwasser
- Beiträge
- 26
Hi,
ich möhte mir aus einer Datei einen Name anzeigen lasen, dies funktioniert aber irgendwie nicht.
Code :1 2 3 4 5 6 7 8 9 10 11
int anzahl; char *vname; FILE *stream; stream=fopen("name.liz", "r"); fseek(stream,0,SEEK_SET); fread(&anzahl,sizeof (anzahl),1,stream); vname=new char[anzahl]; fseek(stream,4,SEEK_SET); fread(&vname,sizeof (*vname),1,stream); fclose(stream); Vorname->Text=*vname;
das auslesen der Anzahl funktioniert einwandfrei nur beim Vornamen schreibt er irgendwelche wirren Zeichen hin. Ich hoffe ihr könnt mir helfen.Blau ist keine Farbe, Blau ist ein Zustand
-
21.08.04 14:20 #2
- Registriert seit
- Jul 2003
- Ort
- Duisburg (NRW)
- Beiträge
- 1.788
vname ist bereits der Zeiger auf dein char-Array, deshalb darfst du da kein '&' vormachen -- das steht dann nämlich für einen Zeiger auf den Zeiger. Ausserdem solltest du als zweiten Parameter die Anzahl übergeben. Übrigens wäre es gut, das char-Array etwas grösser zu machen und eine Schlussnul dranzuhängen, damit es ein "C-String" wird:Code :1
fread(&vname,sizeof (*vname),1,stream);
Code :1 2 3 4
vname=new char[anzahl+1]; // mit platz für schlussnull //fseek( stream, 4, SEEK_SET ); // könnte überflüssig oder schädlich sein fread( vname, anzahl, 1, stream ); // anzahl der zeichen lesen vname[anzahl] = (char)0; // schlussnull setzen
Da fällt mir noch ein: Das fseek() sollte eigentlich überflüssig sein, weil fread() den Filepointer ohnehin weiterbewegt. Lass es mal weg, falls es so nicht klappt.
Hast du dir mal überlegt, mit filestreams zu arbeiten? (std::ifstream, std::ofstream) Das ist empfehlenswert.Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."
-
Solltest Du eine reine Textdatei einlesen wollen (wonach es fuer mich aussieht), dann geht's aber auch einfacher. Probier's doch mal mit "getc()", mit der Du ein zeilenweises Einlesen bspw. so implementieren koenntest
int getline(FILE *stream, char *buf)
{
int p, i=0;
do
{
p = fgetc(stream);
buf[i++] = (char) p;
}
while ((p != EOF) && ((char) p != '\n'));
buf[i-1] = '\0';
return p;
}
Oder Du nimmst gleich "fgets()" ... -> siehe:
http://msdn.microsoft.com/library/de...2c_.fgetws.asp
(Oder - solltest Du C++ schreiben - schau Dich mal im iostream-Umfeld oder ggf. der MFC um. Da gibt es noch weitere "modernere" (?) Varianten. C-Funcs sind aber schon okay!)
Ähnliche Themen
-
FTP Client - Login Daten aus einer Txt Datei lesen
Von ischmael im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 20.07.05, 22:10 -
xml soll aus externe datei daten lesen
Von knopi im Forum XML TechnologienAntworten: 1Letzter Beitrag: 26.01.05, 13:30 -
Daten aus txt Datei lesen
Von duermer im Forum PHPAntworten: 2Letzter Beitrag: 15.06.04, 15:59 -
Daten aus einer Datei lesen!
Von Mr. FISHMAN im Forum PHPAntworten: 10Letzter Beitrag: 01.10.02, 10:06 -
Newsscript mit Txt-Datei: Daten blöckeweiße aus File lesen!
Von methodus im Forum PHPAntworten: 4Letzter Beitrag: 04.04.02, 08:09





Zitieren
Login






