Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c++ > #121090

Re: printf() takes priority here!!!

Path csiph.com!weretis.net!feeder9.news.weretis.net!news.quux.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From Keith Thompson <Keith.S.Thompson+u@gmail.com>
Newsgroups comp.lang.c++
Subject Re: printf() takes priority here!!!
Date Fri, 29 Nov 2024 18:41:14 -0800
Organization None to speak of
Lines 47
Message-ID <87plmdqw8l.fsf@nosuchdomain.example.com> (permalink)
References <vibkav$1m6ou$1@paganini.bofh.team> <vibst0$10dtc$1@dont-email.me> <vic43i$11leh$1@dont-email.me> <vic4p7$11oi6$1@raubtier-asyl.eternal-september.org> <vic51r$11q6p$1@dont-email.me> <vidl87$19o9d$4@dont-email.me>
MIME-Version 1.0
Content-Type text/plain
Injection-Date Sat, 30 Nov 2024 03:41:15 +0100 (CET)
Injection-Info dont-email.me; posting-host="d28f02e76a6c2d00a69abdf93e7df1d2"; logging-data="1428244"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1++LqK/9pfIHYZa8AHgaFTm"
User-Agent Gnus/5.13 (Gnus v5.13)
Cancel-Lock sha1:Cuv/PMyBFLrd8xXpxP8m8J4ss4w= sha1:zEDctbrs1HbHF1+DGm8MnrTKnO8=
Xref csiph.com comp.lang.c++:121090

Show key headers only | View raw


James Kuyper <jameskuyper@alumni.caltech.edu> writes:
> On 11/29/24 05:29, Muttley@DastardlyHQ.org wrote:
>> On Fri, 29 Nov 2024 11:25:41 +0100
>> Bonita Montero <Bonita.Montero@gmail.com> wibbled:
>>> Am 29.11.2024 um 11:13 schrieb Muttley@DastardlyHQ.org:
>>>
>>>> It works as expected on MacOS. The newline should automatically flush cout
>>>> stdout just as it does in printf regardless of whether the C and C++ streams
>>>> are linked.
>>>
>>> std::endl guarantees a flush, but not \n.
>>> I use that often to have buffering of multiple lines.
>> 
>> I've never seen \n NOT flush stdout. Perhaps things are different in a Windows
>> console. Possibly there's some glibc option that may change it on linux and
>> similar on Mac but by default it flushes.
>
> The C++ standard defines cout as managing the stdout stream. All other
> statements in the C++ standard about stdout merely cross-reference the
> definition in the C standard, without saying anything C++ specific about
> it. The C standard associates it with the standard output stream, about
> which it says:
>
> "As initially opened, ... the standard input and standard output streams
> are fully buffered if and only if the stream can be determined not to
> refer to an interactive device."
>
> So stdout should be fully buffered, not line buffered, if it can be
> determined to refer to an interactive device (such as a computer
> terminal). In that case, '\n" should not, in itself, trigger a flush.

I think you missed a "not" (unless I missed something myself).

If the standard output stream can be determined to refer to an
interactive device, it's *not* fully buffered.  It can be either
unbuffered or line buffered, at least as far as ISO C is concerned.

The "can be determined" allows some wiggle room if the implementation
can't tell whether the stream refers to an interactive device.

A C stream can be unbuffered (characters appear as soon as possible),
fully buffered (characters appear when a buffer is filled), or line
buffered (characters appear when a new-line character is encountered).

-- 
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
void Void(void) { Void(); } /* The recursive call of the void */

Back to comp.lang.c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

printf() takes priority here!!! Student Project <student@invalid.invalid> - 2024-11-29 05:35 +0000
  Re: printf() takes priority here!!! Ralf Goertz <me@myprovider.invalid> - 2024-11-29 09:10 +0100
    Re: printf() takes priority here!!! Ralf Fassel <ralfixx@gmx.de> - 2024-11-29 10:54 +0100
    Re: printf() takes priority here!!! Muttley@DastardlyHQ.org - 2024-11-29 10:13 +0000
      Re: printf() takes priority here!!! Bonita Montero <Bonita.Montero@gmail.com> - 2024-11-29 11:25 +0100
        Re: printf() takes priority here!!! Muttley@DastardlyHQ.org - 2024-11-29 10:29 +0000
          Re: printf() takes priority here!!! Bonita Montero <Bonita.Montero@gmail.com> - 2024-11-29 13:03 +0100
            Re: printf() takes priority here!!! Muttley@DastardlyHQ.org - 2024-11-29 12:04 +0000
              Re: printf() takes priority here!!! Bonita Montero <Bonita.Montero@gmail.com> - 2024-11-29 13:12 +0100
                Re: printf() takes priority here!!! Muttley@DastardlyHQ.org - 2024-11-29 12:48 +0000
                Re: printf() takes priority here!!! Bonita Montero <Bonita.Montero@gmail.com> - 2024-11-29 13:56 +0100
          Re: printf() takes priority here!!! James Kuyper <jameskuyper@alumni.caltech.edu> - 2024-11-29 19:11 -0500
            Re: printf() takes priority here!!! wij <wyniijj5@gmail.com> - 2024-11-30 09:12 +0800
            Re: printf() takes priority here!!! Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2024-11-29 18:41 -0800
              Re: printf() takes priority here!!! James Kuyper <jameskuyper@alumni.caltech.edu> - 2024-11-30 10:22 -0500
            Re: printf() takes priority here!!! Muttley@dastardlyhq.com - 2024-11-30 10:06 +0000

csiph-web