język c/ pliki

0

Chciałam aby program znajdował daną litere na wskazanym miejscu i wpisywał wyrazy które spełniaja to do pliku zapis.txt niestety nie działa ten program :( Ktoś pomoże ?

#include <stdio.h>
#include <ctype.h>
#include <string.h>

int main(){
FILE *slownik, *zapis;
slownik = fopen("slownik.txt", "r");
zapis = fopen("zapis.txt" , "w");

char litera;
int pozycja ;
printf("Podaj litere i pozycje ");
scanf("%c %d",  &litera, &pozycja);
char slowo[30];
while((fscanf(slownik, "%s", slowo))!=EOF){
    if(strlen(slowo)>pozycja &&litera == slowo[pozycja])
        fprintf(zapis, "%s\n", slowo);
}


fclose(slownik);
fclose(zapis);
return 0;

}

1

zamień linijke FILE slownik, zapis; na FILE* slownik, *zapis;
Fanie by było jakbyś nauczyła się formatować kod na forum żeby wyglądał tak:

#include <stdio.h>
#include <ctype.h>
#include <string.h>

int main(){
  FILE* slownik, *zapis;
  slownik = fopen("slownik.txt", "r");
  zapis = fopen("zapis.txt" , "w");

  char litera;
  int pozycja ;
  printf("Podaj litere i pozycje ");
  scanf("%c %d",  &litera, &pozycja);
  char slowo[30];
  while((fscanf(slownik, "%s", slowo))!=EOF){
    printf("slowo: %s\n", slowo);
    if(strlen(slowo)>pozycja &&litera == slowo[pozycja])
      fprintf(zapis, "%s\n", slowo);
  }

  fclose(slownik);
  fclose(zapis);
  return 0;

}

0
nullpt4 napisał(a):

zamień linijke FILE slownik, zapis; na FILE* slownik, *zapis;
Fanie by było jakbyś nauczyła się formatować kod na forum żeby wyglądał tak:

#include <stdio.h>
#include <ctype.h>
#include <string.h>

int main(){
  FILE* slownik, *zapis;
  slownik = fopen("slownik.txt", "r");
  zapis = fopen("zapis.txt" , "w");

  char litera;
  int pozycja ;
  printf("Podaj litere i pozycje ");
  scanf("%c %d",  &litera, &pozycja);
  char slowo[30];
  while((fscanf(slownik, "%s", slowo))!=EOF){
    printf("slowo: %s\n", slowo);
    if(strlen(slowo)>pozycja &&litera == slowo[pozycja])
      fprintf(zapis, "%s\n", slowo);
  }

  fclose(slownik);
  fclose(zapis);
  return 0;

}

Sorki, jestem tu pierwszy raz dlatego nie potrafię tego wyglądu zmienić.
Wracając do zadania , nie wypisuje mi słów spełniających warunek w pliku zapis.txt, tylko wyświetla mi na kompilatorze ciąg wyrazów ale litery są zaburzone. Nwm dlaczego

1
nullpt4 napisał(a):

zamień linijke FILE slownik, zapis; na FILE* slownik, *zapis;

To już chyba lepiej

FILE *slownik, *zapis;

i konsekwentnie trzymać się tego że gwiazdkę przyklejamy do nazwy zmiennej (jeśli jest) a nie typu. np. char *text.

0

Może wklej zawartość pliku slownik.txt, powiedz jakiego wyniku się spodziewasz i co wpisujesz po Podaj litere i pozycje

0
nullpt4 napisał(a):

Może wklej zawartość pliku slownik.txt i powiedz jakiego wyniku się spodziewasz i co wpisujesz po Podaj litere i pozycje

W pliku slownik.txt mam jakieś 100 wyrazów i wpisuje np. B 2 (czyli chce mieć b na drugiej pozycji ) i chce żeby mi te wyrazy wpisało do pliku zapis.txt, a nic takiego się nie dzieje tylko w kompilatorze wyskakuje mi duzo wyrazów o zniekształconych nazwach np slowo: >>YWOKOST >>YWICA ITD

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