• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

funkcje fgets,fputs

0 głosów
1,079 wizyt
pytanie zadane 29 listopada 2017 w C i C++ przez Krystek102 Bywalec (2,440 p.)

Witam,mam oto takie zadanko :

Wypisać dowolny plik tekstowy na ekran. Należy użyć następujących par funkcji: fgets, fputs. W każdym przypadku policzyć ilość znaków zapisanych w pliku.

mam problem gdyż nie wiem jak za pomocą tych funkcji odwołać się do pojedynczych znaków i je wypisać mój kod :

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char znak;
    FILE * plik=fopen("in.txt","r");
    int ile=0;


    while(fgets(znak,1,plik)!=EOF)
    {
        ile++;
        fputs(znak,stdout);

    }


    printf("Ilosc znakow wynosi : %d",ile);
    fclose(plik);
    return 0;
}

 

2 odpowiedzi

+1 głos
odpowiedź 29 listopada 2017 przez Bondrusiek Maniak (61,460 p.)

Witam,

dodaj do projektu bibliotekę <string.h> aby móc wywołać funkcje strlen(const char*)

#include <string.h>

Następnie popraw wcześniejsze błędy

//char znak;
//na przykład tablica 100elementowa
char znak[100];

Obczaj sobie dokumentacje : http://www.cplusplus.com/reference/cstdio/fgets/.

FILE * plik=fopen("in.txt","r");

Twój plik. Jeszcze zauważ że fgets zwraca char* więc nie możesz to porównać z int'em(EOF)

    if(fgets(znak,100,plik) != NULL)
    {
        puts(znak);//Tutaj Ci wyświetla zawartość żeby widzieć co jest w 'znak;
    }


    printf("Ilosc znakow wynosi : %d",strlen(znak));//policzenie długości pliku

Dodatkowo jeśli plik jest większy to możesz utworzyć pętle co będzie liczyć długość napisu podczas każdej iteracji.

 

komentarz 29 listopada 2017 przez Krystek102 Bywalec (2,440 p.)
ok,dzięki,ogarnąłem :)
0 głosów
odpowiedź 29 listopada 2017 przez obl Maniak (51,300 p.)

fgets przyjmuje wskaźnik do tablicy znaków char a nie char. I to samo dotyczy fputs

Podobne pytania

0 głosów
1 odpowiedź 2,235 wizyt
pytanie zadane 28 marca 2017 w C i C++ przez Kamil Duljas Użytkownik (990 p.)
0 głosów
0 odpowiedzi 323 wizyt
pytanie zadane 8 września 2022 w C i C++ przez benny13 Obywatel (1,150 p.)
0 głosów
0 odpowiedzi 1,023 wizyt

93,740 zapytań

142,675 odpowiedzi

323,294 komentarzy

63,319 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...