Obsługa plików zadanie

0

język C
1 Napisz program, który pobiera od użytkownika znak i sprawdza, czy występuje on w ciągu
zapisanym w pliku tekstowym.

  1. Zmodyfikuj poprzedni program tak, aby zliczał on liczbę wystąpień znaku podanego przez
    użytkownika w ciągu zapisanym w pliku tekstowym.

mam problem z funkcja w 1 zadaniu i stoje w miejscu od kilku dni nie mam pojęcia jak się do tego zabrać pomocy

1

Z czym konkretnie masz problem? Pobraniem znaku? Sprawdzeniem czy występuje w ciągu? Najlepiej pokaż co masz na razie.

0
#include <stdio.h>
#include <conio.h>
int main()
{
    char* kn;
    printf("podaj znak : ");
    gets(kn);
    printf("%s", kn);
    FILE* plik;
    char zn;
    plik = fopen("plik_t1.txt", "r");
    //od tego momentu nie wiem jak napisac reszte
    while ((zn = getc(plik)) != EOF) {
        if (kn == zn)
    }
    fclose(plik);
    return 0;
}

chodzi zeby po funkcji while sprawdzal czy sie znajduje ten znak w pliku

1

Już prawie wszystko masz! Utwórz sobie nową zmienną - counter, której początkową wartość ustalisz na 0, i którą będziesz zwiększał o jeden za każdym razem gdy napotkasz znak (czyli w tym ifie na obecnej linii 14). I to wszystko.

0

screenshot-20201217121110.png

mam taki błąd mi wyskakuje i ne o co chodzi

2

Ach, wczytujesz ciąg znaków (%s), a chcesz znak. Zmień typ kn na char i wczytuj %c.

Ponadto: zauważ gdzie umieściłeś counter++ - przecież inkrementować chcesz wyłącznie gdy znak się zgadza, a nie każdy znak w pliku.

3

@Jakubczak awm:
Tak na przyszłość.
Zamiast zamieszczać te obrazki z Dev C++ (które razi większość z nas), kopiuj wklej tekst kodu, oraz tekst z zakładki "Log kompilacji".
nawet tobie będzie tak wygodniej.

0

int main()
{
char znak1;
printf("Podaj znak");//pobiera znak od uzytkownika
scanf("%c",znak1);
FILE ws;//wskaznik na plik
char znak;
ws = fopen ("plik_t1.txt","r");//otwiera opik
while(znak!=EOF)
{
znak=fgetc(ws);
if(znak=znak1)
printf("OK");
else
printf("NO");
}
fclose(ws);
getche();
return 0;
}

mam problem z tym programem , sprawdza czy podany znak jest w pliku i program zatrzymuje sie na podaniu znaku, nie wiem jak ten ptoblem rozwiazac

1

scanf("%c",&znak1);
if(znak==znak1)

0

dziekuje ale teraz wyswietla mi sie OKNO po odpaleniu programu, jak znak jest w pliku a jak nie ma to NONO

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