🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

4 total messages Started by Tomasz Cichacki Fri, 16 Jan 1998 11:37
fscanff i sekwencja formatujaca
#688
Author: Tomasz Cichacki
Date: Fri, 16 Jan 1998 11:37
27 lines
1177 bytes
Mam taki kawalek programu

FILE *plik;
  plik = fopen("dane.dxt","r");
  rewind(plik);
  fscanf(plik,"%5c%*c%s[^|]%s[^|]%s[^|]",ind,imie,nazwisko,kierunek);
  printf("\n:%s\n:%s\n:%s\n:%s",ind,imie,nazwisko,kierunek);
  fclose(plik);

plik dane.dxt zawiera taka linie

22334|Jan|Nowak|info

chcialbym aby pola oddzielone "|" zostaly przypisane odpowiednim zmiennym,
ale cos mi nie gra, moze wiecie co?

Tomek
hermes@venus.wmid.amu.edu.pl
http://venus.wmid.amu.edu.pl
tel 0 602 664 791


--
Tomek
hermes@venus.wmid.amu.edu.pl
http://venus.wmid.amu.edu.pl
tel 0 602 664 791
Re: fscanff i sekwencja formatujaca
#689
Author: Marek Kotowski
Date: Fri, 16 Jan 1998 12:19
14 lines
957 bytes
Tomasz Cichacki wrote:
> 
> Mam taki kawalek programu
> 
> FILE *plik;
>   plik = fopen("dane.dxt","r");
>   rewind(plik);
>   fscanf(plik,"%5c%*c%s[^|]%s[^|]%s[^|]",ind,imie,nazwisko,kierunek);
 Brakuje operatorow brania adresu:
    fscanf(plik,"%5c%*c%s[^|]%s[^|]%s[^|]",
                                   &ind,&imie,&nazwisko,&kierunek);
HTH

Marek Kotowski
Re: fscanff i sekwencja formatujaca
#690
Author: Radoslaw Gancarz
Date: Tue, 20 Jan 1998 14:14
26 lines
1766 bytes
Marek Kotowski <mkot@imm.org.pl> wrote:
> Tomasz Cichacki wrote:
>> 
>> Mam taki kawalek programu
>> 
>> FILE *plik;
>>   plik = fopen("dane.dxt","r");
>>   rewind(plik);
>>   fscanf(plik,"%5c%*c%s[^|]%s[^|]%s[^|]",ind,imie,nazwisko,kierunek);
                  ^^^^
Czy tutaj czasem nie powinno byc %5s ???

>  Brakuje operatorow brania adresu:
>     fscanf(plik,"%5c%*c%s[^|]%s[^|]%s[^|]",
>                                    &ind,&imie,&nazwisko,&kierunek);
                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
A te & to po co ??? - wszystkie teksty sa w tablicach ktore sa dla wywolan
funkcji tozsame ze wskaznikami. Poprzednia wersja byla pod tym wzgledem
poprawna.
Proponujesz przekazanie parametru typu char ** :-). Wiekszosci kompilatorow 
niezbyt to sie podoba (zwykle ignoruja takie rzeczy).

					Radek 
1+-------------------------------------------------------------------------+1
2| Radoslaw Gancarz                           feanor@zeus.polsl.gliwice.pl |2
3+--------Zeby zadac pytanie, trzeba znac chociaz czesc odpowiedzi.--------+3
Re: fscanff i sekwencja formatujaca
#691
Author: Marek Kotowski
Date: Tue, 20 Jan 1998 16:08
32 lines
2290 bytes
Radoslaw Gancarz wrote:
> 
> >  Brakuje operatorow brania adresu:
> >     fscanf(plik,"%5c%*c%s[^|]%s[^|]%s[^|]",
> >                                    &ind,&imie,&nazwisko,&kierunek);
>                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> A te & to po co ??? - wszystkie teksty sa w tablicach ktore sa dla wywolan
> funkcji tozsame ze wskaznikami. Poprzednia wersja byla pod tym wzgledem
> poprawna.
> Proponujesz przekazanie parametru typu char ** :-). Wiekszosci kompilatorow
> niezbyt to sie podoba (zwykle ignoruja takie rzeczy).

  Byc moze pisalem nazbyt skrotowo. Juz po wyslaniu postu stwierdzilem,
ze z ciagu formatujacego wynika, ze sa to w wiekszosci tablice znakow. 
Mozna by zatem zrezygnowac z operatora & (niewiadomo, co ze zmienna
ind). Uznalem jednak, ze takie rozwiazanie mozna zostawic. Nagminnym
bledem jest zapominanie o operatorze & w wywolaniu fscanf i funkcji
podobnych. Mozna zatem przyjac, ze ze stylistycznego punktu widzenia, 
lepiej jest zachowac operator & takze w tym przypadku. Inaczej w 
jednych wywolaniach fscanf beda operatory &, w innych nie. Jest to 
zreszta kwestia dyskusyjna i nie bede sie upieral.
  Natomiast &nazwisko nie jest typu char**. W RATIONALE wyraznie 
podkreslono, ze dla celow zachowania ogolnej spojnosci standardu
przyjeto, ze operator & powinien byc stosowalny takze do tablic. 
Zwieksza sie jego abstrakcyjnosc (mozna go stosowac do kazdego
obiektu). Kompilator moze oczywiscie wysunac zastrzezenie, ale
kod nie jest niepoprawny (w istocie kompilator moze wypisywac
rozne ostrzezenia - jest to sprawa implementacji jezyka).

   Pozdrawiam

   Marek Kotowski
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads