fscanf problem

Juraj Hilovsky hilovsky na unipo.sk
Středa Květen 31 12:04:39 CEST 2000


Potom je urobena funkcia k manualu, nie manual k funkcii, ako by to bezny
uzivatel ocakaval. V nasom pripade je funkcia fscanf sice dobra, ale
nepouzitelna.

Ing. Juraj Hilovsky
CVT PU
Presov
Slovakia

-----Původní zpráva-----
Od: Pavel Kankovsky <peak na argo.troja.mff.cuni.cz>
Komu: linux na linux.cz <linux na linux.cz>
Datum: 31. máj 2000 11:16
Předmět: Re: fscanf problem


>On Wed, 31 May 2000, Juraj Hilovsky wrote:
>
>> Zaujimava je nasledujuca vec:
>> zapis fscanf(stream,"%[^\n]%*c",buffer); v linuxe nacita sice ten prazdny
>> riadok, ale zostane na nom a cita ho az do zblbnutia (ak je v cykle).
>> V systeme MS-DOS tato funkcia pracuje korektne. To znamena, ze ked je v
>> riadku iba '\n', nacita prazdny retazec a pokracuje dalej.
>
>Ne, je to presne naopak. V tom DOSu (coz asi znamena prelozeno urcitym
>konkretnim DOSovym kompilatorem a slinkovano s konkretnimi knohovnami) je
>to spatne a v Linuxu je to dobre, protoze:
>
>       [      Matches a **nonempty** sequence of characters from the
>              specified  set  of  accepted  characters;  the next
>              ...
>
>cili vzorkem ``%[^\n]%*c'' nelze nacist ``\n'' a funkce fscanf v takovem
>pripade vrati 0 a precteny (ale nevyhovujici) znak (tj. '\n') vrati pomoci
>ungetc() na vstup.
>
>--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
>"Resistance is futile. Open your source code and prepare for assimilation."




Další informace o konferenci Linux