Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

04.02.2011, 13:57

[C | C++] Dateizugriff

Hallo,

brauche ein klein wenig Hilfe bei eimen Dateizugriff.
Folgendes dazu: Ich versuche am anfang einer Methode eine Datei zu lesen. Doch dannach werden meine init-Methoden nicht mehr ausgeführt.

Wichtiger Hinweis: Ich programmiere in C++ in der DragonFireSDK und habe leider keinen zugriff auf die iostream und bin dazu verdonnert die Dateizugriffe mit C durchzuführen.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void GameOverScreen::enterScreen() {
...
    FILE *score_best;
    printf("0 1\n");
    char text[7];
    printf("0 2\n");
    score_best = fopen ("Doc/score_best.txt", "r");
    printf("0 3\n");
    if (score_best != NULL) { 
     printf("0 4\n");
     fscanf (score_best, "%s", text);
     printf("0 5\n");
     text[6] = '\0';
     printf("0 6\n");
     printf ("%s\n", text);
     printf("0 7\n");
     fclose (score_best);
    }
    printf("0 8\n");
    return;
...
init-Methoden...


Ich habe mir die printf's eingebaut um zu sehen bis wo er durchläuft, ich bekomme dann nur die ausgaben von 01-03 und 08.

Die Datei liegt im richtigen Pfad und hat den Inhalt "12345". Also nur die Ziffern ohne Zeilenumbrüche oder ähnliches.

2

04.02.2011, 13:58


3

04.02.2011, 14:04

na das hilft mir auch nicht weiter oO ^^

4

04.02.2011, 14:06

vielleicht hast du den dateinamen nicht richtig, oder probier mal statt "Doc/score_best.txt" "Doc\\score_best.txt"

5

04.02.2011, 14:13

vielleicht hast du den dateinamen nicht richtig, oder probier mal statt "Doc/score_best.txt" "Doc\\score_best.txt"

also der dateiname ist schon richtig..lesen udn schreiben bei yoda gelernt ich hab, der pfad ist so auch ok, den alle anderen zugriffe auf sprites etc. laufen auch problemlos, dennoch hab ich mit deinem pfad kein ziel erreichen können, muss irgendwas im if sein, bzw. vllt fehlen mir die berechtigungen..aber das ist nun wirklich schwer vorstellbar

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

04.02.2011, 14:22

Die Datei liegt im richtigen Pfad [...]

Und das weißt du so sicher weil ...?

7

04.02.2011, 14:23

Und das weißt du so sicher weil ...?
Weil ich die Datei manuell angelegt habe, und den Inhalt hineingeschrieben habe.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

8

04.02.2011, 14:25

Und was hat das damit zu tun dass sie im richtigen Pfad liegt?
Check doch mal bitte ob das Working Directory an dieser Stelle im Code wirklich stimmt. Debugger führen dein Programm gern mal wo anders aus und du verwendest offenbar irgendeine Library, die könnte evtl. auch das Working Dir verändern.
Ich wäre mir ziemlich sicher dass sie eben gerade nicht im richtigen Pfad liegt. Die andere Erklärung wäre, wie du schon festgestellt hast, dass du keine Leserechte hast oder ähnliches...

9

04.02.2011, 14:35

Und wie finde ich nun den "richtigen" Pfad raus?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

10

04.02.2011, 14:38

Hast du denn schon überprüft wie an der fraglichen Stelle im Programmablauf dein Working Directory lautet?

Werbeanzeige