Liczenie ilości znaków w pliku txt C


(Stan19) #1

Witam.

Napisałem taki oto program który zmienia małe litery na duże i odwrotnie i zapisuje do pliku o określonej nazwie. Mój problem polega na tym, że muszę miec dokładnie tyle znaków ile mam w zadefiniowanych w #define. Jeżeli ustawię większą liczbę w #define to program zmienia poprawnie duże na małe i odwrotnie lecz zapisuje jeszcze do pliku niechciane \0\0\0. Wpadłem na pomysł żeby policzyć ilość znaków w pliku i na podstawie tego wypisywać do pliku tylko określoną liczbę znaków. Znalazłem funkcję strlen lecz nie wiem jak dokładnie jej użyć.

Proszę o pomoc.


(system) #2

http://www.cplusplus.com/reference/cstring/strlen/ <-- Tutaj jest nawet z przykładem

Funkcja potrzebuje wskaźnika do stringu i zwraca typ size_t - możesz go sobie rzutować na potrzebny format (np tak jak w przykładzie unsigned int)


(Stan19) #3

Czy funckja typu:

void liczbaznakow(char name[MAX_PATH], int lznaki)

{

lznaki=strlen(name);

}

powinna zadziałać?


([alex]) #4
FILE *f=fopen("plik.txt","rwb");

fseek(f,0,SEEK_END);

long int Ilosc_znakow_w_pliku=ftell(f);

(system) #5

Tylko, że chcesz znać wartość lznaki a podajesz je jako argument funkcji… Po co?

Jak już chcesz mieć własną funkcję to można tak:

unsigned int liczbaZnakow(char name[MAX_PATH])

{

return (unsigned)strlen(name);

}