(C) bledne pobieranie i zapisywanie w pliku

0

Witam
mam oto taki fragment kodu

plik2 = fopen ("rekordy.txt", "rt");
if (plik2 != NULL)
{
fgets(tmp[0],80,plik2);
fgets(tmp[1],80,plik2);
}
fclose(plik2);
plik2 = fopen ("rekordy.txt", "wt");
if (plik2 != NULL)
{
fprintf(plik2,"%s",tmp[0]);
}
fclose(plik2);

dodam ze jest zmienna char tmp[80][12];

Teraz mam plik "rekordy.txt" i sa w nim dane

00:01.70 pierwszy
00:03.170 Drugi
00:03.170 trzeci

Teraz wyjasnienie. Program powinien pobrac pierwsza i druga linijke, ale w pliku powinien zapisac tylko pierwsza linijke. Jednak zapisuje

00:01.70 pie00:03.170 Drugi

Czy wie ktos dlaczego tak sie dzieje? I jak zrobic aby bylo poprawnie
Dziekuje za pomoc

0

Zadeklarowałeś dwuwymiarową tablicę tmp która ma 80 WIERSZY i 12 KOLUMN. Pewnie miało być na odwrót , bo wczytujesz dane

fgets(tmp[0],80,plik2);

pobierając 80 znaków.
Zwiększ po prostu rozmiar tablicy przy deklaracji.

0

aaaaaaaaa no fakt. Chodzilo mi o 12 wierszy.
Wielkie dzieki za rozwiazanie mojego banalnego bledu.
Dzieki

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