pliki

0

Wtajcie!
Mam dany program:

#include

int GetFileLen(FILE *pF)
{
  int Length = 0;
  while(!feof)
  {
    Length++;
    fgetc(pF);
  }
}
int main(void)
{
  char szPath[50];
  scanf("%s", szPath);
  FILE *pF = fopen(szPath, "rt+");
  char *szText = new char[GetFileLen(pF)];

  fscanf(pF, "%s", szText);

  pF = fopen("b.txt", "wt+");
  fprintf(pF, "%s", szText);

  return 0;
}

Oto problem: zawsze na końcu b.txt pojawiają mi się dziwne znaczki. Jak to ominąć ?

A i jeszcze jedno pytanie: Jaka jest różnica pomiędzy strumieniami(fstream) a odczytem/zapisem z/do pliku korzystając z instrukcji fscanf, fprintf, fgetc, fputc, itd.

Cóż, fałszywy alarm. Problem sam się rozwiązał. Wystarczyło dodać 1 do Length. Zapomniałem, że każdy plik musi mieć zakończenie. Człowiek o późnej godzinie przestaje racjonalnie myśleć. Ale na drugie pytanie czekam cały czas na odp. :-)

/* Stosuj tag cpp to będzie kolorować automatycznie */

0

A i jeszcze jedno pytanie: Jaka jest różnica pomiędzy strumieniami(fstream) a odczytem/zapisem z/do pliku korzystając z instrukcji fscanf, fprintf, fgetc, fputc, itd.

Te pierwsze wystepuja tylko w jezyku C++ natomiast te drugie to stare funkcje (co nie oznacza, ze zle) jezyka C.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.