fscanf pomozcie:(

0

gdzies w pliku tekstowym jest zdanie

science fiction przygodowy

ustawiam wskaznik funkcja fseek na poczatek tego zdania
i jak pozniej funkcja fscanf odczytac tylko fiction przygodowy ,zeby ominal mi sciecne

0

imho:
fscanf( f, "science %s %s\n", a, b );
;> ale nie nazwe tego najwygodniejszym sposobem
jesli chesz po prostu dwa slowa ostatnie, to odczytaj 3, a 1dnego po prostu nie uzywaj ;>

0

fscanf(f,"%s\n",a) odczytuje tylko do spacji:(

0

mam maly problem
jest plik textowy ktory wyglada nastepujaca:

Nazwa filmu: "nazwa1"
jakas tresc ciagnaca sie przez kilka linijek
.....
.....
......
.....
Nazwa filmu:"nazwa2"
......
......
.....

i tak dalej

czy za pomoca funkcji fscanf mozna odczytac tylko nazwy filmu i nazwy wyswietlic na ekran za pomoca printf??bo ja
uruchamialem funkcje fscanf (f,"Nazwa filmu :%[^ \n],object.nazwa) odczytala mi tylko pierwsza linijke pliku txt a jezeli ja znowu uruchomilem to znowu pierwsza linijke tak jakby wskaznik sie nie przesuwal .Jak to zrobic by funkcja szukala textu Nazwa filmu : a pozniej po tym tekscie wpisywala do bufora nazwe filmu ,pozniej te nazwy filmu maja byc wyswietlone na ekran.Dzieki za odpowiedzi.

0

No trzeba bylo tak Od razu ;>>>
imho:

zakladam ze format jest strikte taki
Nazwa filmu:(TU SPACJA)"nazwa filmu jakas"(TU ENTER)

FILE *f;
char buf[ 256 ];
char *nz = "Nazwa filmu: "; // tutaj to cudo ktorego szukamy
char *n, *x;

f = fopen( "siakis.plik", "r" );

while( fgets(f, buf, 256) )
{
  if( memcmp( nz, buf, sizeof( nz )-1 ) == 0 )
  {
    n = buf + sizeof( nz )+1; // pierwsza litera nazwy
    x = strchr( n, '"' ); //znajdz cudzyslow
    if( x ) *x = '\0'; // pozbadz sie go i dorzuc EOS
    puts( n ); // wypisz nazwe na ekran
  }
}

...

nie testowalem ale powinno dzialac ;>

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