Path: csiph.com!eternal-september.org!feeder.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Keith Thompson Newsgroups: comp.lang.c Subject: Re: scanf used for to get a line Date: Sat, 05 Nov 2016 14:22:50 -0700 Organization: None to speak of Lines: 31 Message-ID: References: <15ea8d6d-0173-491c-b6b5-b1c57dd61769@googlegroups.com> <236c25a6-8c18-4082-ab3a-86eb55fb2408@googlegroups.com> <5e06af91-eec8-42cd-87c4-99d2b448de84@googlegroups.com> <108db18d-12c1-4eaa-afc9-59e7c0ca7798@googlegroups.com> <3c58680e-35cb-4c1f-b53f-91d8d3fbf2f9@googlegroups.com> <0d349302-0a98-4fa3-a368-8ac76ca8c546@googlegroups.com> <6e55e023-285a-4041-9b7f-90fa65652279@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: mx02.eternal-september.org; posting-host="068e13fa936d4e49cf562f96621eaf4d"; logging-data="30532"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/aFN7C+MmKpjO9nKyv7KpG" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) Cancel-Lock: sha1:wfP5ySD6fQMM846VSET519lam4o= sha1:OL1+V4muCVsD8W9C3/fQC0uLguM= Xref: csiph.com comp.lang.c:95859 supercat@casperkitty.com writes: > On Friday, November 4, 2016 at 9:11:38 PM UTC-5, Keith Thompson wrote: >> The behavior of what? A stream has no behavior by itself. The behavior >> of any function that operates on a FILE* is defined by the description >> of that function. If there's some construct whose behavior you think is >> not defined in that case, please specify what it is. > > What part of the Standard specifies the behavior of fgets in case stdin > returns one character that isn't a newline and then reports EOF but does > not report an error? The Standard describes the behavior in cases where > a stream reports an EOF before returning any characters, and in cases > where the stream reports an error, but I do not see any description of > what fgets is required to do in case the stream returns one or more > characters followed by EOF, but does not report an error. N1570 7.21.7.2p1: The fgets function reads at most one less than the number of characters specified by n from the stream pointed to by stream into the array pointed to by s. No additional characters are read after a new-line character (which is retained) or after end-of-file. A null character is written immediately after the last character read into the array. How is that unclear in the case you describe? -- Keith Thompson (The_Other_Keith) kst-u@mib.org Working, but not speaking, for JetHead Development, Inc. "We must do something. This is something. Therefore, we must do this." -- Antony Jay and Jonathan Lynn, "Yes Minister"