Program (nie) zapisuje tekstu do pliku

0

Cześć,
piszę małą grę w C i napotkałem na dziwny problem przy zapisywaniu i odczytywaniu danych z pliku.
Gdy program zapisuje dane do pliku .txt operacja kończy się sukcesem, natomiast w pliku .txt nic się nie zmienia - jak był pusty tak dalej jest. Poniżej kod

void save_file(int score, int time)
{
        FILE *fp = fopen("save.txt", "a");
        fprintf(fp, "%d in %d seconds\n", score, time);

        fclose(fp);
}

Kolejnym punktem jest odczyt danych z tego pliku. Mimo, że jest pusty to o dziwo program czyta dane zapisane poprzednią funkcją i je wypisuje.
Kiedy sam wpiszę coś do tego txt, to wynikiem dalej są te dane poprzednio zapisane których nie widać.

   FILE * fp;
   char line[100];
   fp = fopen("save.txt", "r");
while (1) {
        if (fgets(line,150, fp) == NULL) break;
        printf("%s",  line);
}

Nie mam pojęcia dlaczego tak się dzieje, dodam, że na innym kod program działa jak powinien.
Jakieś pomysły ?

0

Może odpalasz z innego katalogu roboczego? Jeśli robisz to przez IDE to zapewne tak jest.

0

Używam codeblocksa. Wszystkie pliki projektu - źródłowe, nagłówkowe, czcionki, grafikę trzymam w jednym katalogu C:\Users\Allegro\Desktop\arkanoid
Znalazłem ten plik tekstowy w takiej lokalizacji:
C:\VTRoot\HarddiskVolume4\Users\Allegro\Desktop\arkanoid
Gdzie w opcjach projektu mogę zmienić, żeby zapisywał te pliki tekstowe do katalogu z projektem?

2

Oj ziomus.

   char line[100];
// nastepnie
        if (fgets(line,150, fp) == NULL) break;


0

Tak, widzę, zły kod skopiowałem bo między czasie zmieniałem go.
Natomiast nie wiem gdzie zmienić domyślny folder zapisu/odczytu plików.

1 użytkowników online, w tym zalogowanych: 0, gości: 1