Deutsch English Français Italiano |
<v4mac0$3vunf$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Janis Papanagnou <janis_papanagnou+ng@hotmail.com> Newsgroups: comp.lang.c Subject: Re: Whaddaya think? Date: Sun, 16 Jun 2024 11:13:35 +0200 Organization: A noiseless patient Spider Lines: 44 Message-ID: <v4mac0$3vunf$1@dont-email.me> References: <666ded36$0$958$882e4bbb@reader.netnews.com> <20240616015649.000051a0@yahoo.com> <v4lm16$3s87h$4@dont-email.me> <v4lmso$3sl7n$1@dont-email.me> <20240616104425.0000548d@yahoo.com> MIME-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Injection-Date: Sun, 16 Jun 2024 11:13:36 +0200 (CEST) Injection-Info: dont-email.me; posting-host="567efb17d94aca7729125b64ceeb67a7"; logging-data="4193007"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18AMla+olORTlNwnd7cR/9D" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 Cancel-Lock: sha1:DcQxlI3z/ERLXpCmU50ZIQrakPU= In-Reply-To: <20240616104425.0000548d@yahoo.com> Bytes: 2758 On 16.06.2024 09:44, Michael S wrote: > On Sun, 16 Jun 2024 05:41:12 +0200 > Janis Papanagnou <janis_papanagnou+ng@hotmail.com> wrote: > >> On 16.06.2024 05:26, Lawrence D'Oliveiro wrote: >>> On Sun, 16 Jun 2024 01:56:49 +0300, Michael S wrote: >>> >>>> If you want to preserve you sanity, never use fscanf(). >>> >>> Quoth the man page <https://manpages.debian.org/3/scanf.3.en.html>: >>> >>> It is very difficult to use these functions correctly, and it is >>> preferable to read entire lines with fgets(3) or getline(3) and >>> parse them later with sscanf(3) or more specialized functions >>> such as strtol(3). >> >> This would be also my first impulse, but you'd have to know >> _in advance_ how long the data stream would be; the function >> requires an existing buffer. > > Define formats with sensible maximal line length (512 sounds about > right) and refuse any input that has longer lines. You're not serious, are you? - Or wasn't it clear that it was about reading lines (of arbitrary lengths) in one go? > >> So you'd anyway need a stepwise >> input. On the plus side there's maybe a better performance >> to read large buffer junks and compose them on demand? But >> a problem is the potential cut of the string of a number; it >> requires additional clumsy handling. So it might anyway be >> better (i.e. much more convenient) to use fscanf() ? >> > > No, the behaviour of fsacnf() is too non-intuitive. Maybe fsacnf() is non-intuitive. Myself I've never problems with fscanf(), though. - To each his own. :-) Janis