sid1900 Geschrieben 30. September 2003 Geschrieben 30. September 2003 Hi, ich komm ni weiter, mein Problem sieht folgender Maßen aus: #include <stdio.h> #include <stdlib.h> void main() { FILE *datei_ptr; int pw; char *ein_datei="test.txt"; datei_ptr=fopen(ein_datei,"r"); fscanf(datei_ptr,"%d",&pw); fclose(datei_ptr); printf("pw"); } Ich möchte aus test.txt die Zeichenfolge 123456789 auslesen die auf die Variable pw übergeben und in der Konsole anzeigen. Beim kompilieren gibts keine Fehler aber nach dem ausführen kommt ne Fehlermeldung; seh ich den Fehler ni oder gibts keinen? Ich danke für die Aufmerksamkeit
Guybrush Threepwood Geschrieben 30. September 2003 Geschrieben 30. September 2003 Wie lautet denn die Fehlermeldung? PS: um die variable pw auszugeben mußt du das so schreiben: printf ("%i",pw);
nic_power Geschrieben 30. September 2003 Geschrieben 30. September 2003 Hallo, wenn in Deiner Datei tatsächlich die Zeichenfolge steht, kann Dein Code nicht laufen. Integers werde nicht im Klartext gespeichert, sondern als 4 Byte. Du musst in diesem Fall erst einen String (char *) einlesen und diesen dann mit atoi() in ein int konvertieren. Nic
Guybrush Threepwood Geschrieben 30. September 2003 Geschrieben 30. September 2003 Also das stimmt nicht. fscanf konvertiert das irgendwie intern. Sonst würde die Funktion ja auch keinen Sinn machen. Habs extra ausprobiert;) Ich glaube eher das das Programm die Datei nicht finden kann. Überprüfe nach dem öffnen mal ob dein Dateizeiger gleich NULL ist, dann ist nämlich ein Fehler aufgetreten.
Klotzkopp Geschrieben 30. September 2003 Geschrieben 30. September 2003 Ich würde zuerst mal den Rückgabewert von fopen und fscanf prüfen.
nic_power Geschrieben 30. September 2003 Geschrieben 30. September 2003 Hallo, stimmt. Wo du recht hast, hast Du recht . Ich hatte völlig übersehen, dass fscanf die Konvertierung bei Bedarf für den Nutzer durchführt. In dem Fall sollte die Zahl eigentlich korrekt eingelesen werden. Wie lautet denn die Fehlermeldung? Du solltest auch die Rückgabewerte - insbesondere von fopen - überprüfen, ob ein Fehler aufgetreten ist. [Edit] Da war einer schneller Nic PS: main liefert ein int zurück und ist nicht vom typ void!
Empfohlene Beiträge
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 erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden