Article View: de.comp.lang.c++
Article #1641Re: IOSTREAM.H
From: Dietmar Kuehl
Date: Thu, 15 Feb 1996 02:26
Date: Thu, 15 Feb 1996 02:26
53 lines
2458 bytes
2458 bytes
Hi,
Sebastian Hentschel (pyro@gumption.ruhr.de) wrote:
: Ich habe da folgende Frage.
: Was verursacht eigentlich die Methode cout.put genau?
: Schreibt sie das angegebene Zeichen aufden Bildschirm?
: Oder, schreibt sie nur das Zeichen in einen Buffer in
: cout der dann später(mit cout oder beim Programmende
: oder bei dem nächsten Zugriff auf die Standart EIN bzw.
: AUSGABE) ausgegeben wird.
'ostream::put(char)' schreibt das entsprechende Zeichen in einen Buffer
(ein Objekt einer Klasse, die von 'streambuf' abgeleitet ist). Fuer
'cout' bedeutet das, dass das Zeichen bis zum naechsten 'sync()' dort
verweilt und NICHT ausgegeben wird. Ein 'sync()' passiert allerdings
recht oft, z.B. zum Zeilenende. Man kann den Buffer explizit mit der
externen Repraesentation synchronisieren, indem man 'ostream::flush()'
aufruft bzw. indem man 'flush' in den Stream schreibt:
cout.put('a');
cout.flush();
cout.put('b');
cout << flush;
Fuer eine genau Beschreibung dessen, was vor sich geht, empfehle ich
"The (Draft) Standard C++ Library", P.J.Plauger, Prentice Hall. Das
Buch passt leider nicht mehr genau zum DWP, aber beschreibt fuer weite
Teile der (zukuenftigen) ISO C++ Standard Library die relevanten
Mechanismen. Gute C++ Kenntnisse sind allerdings schon notwendig, um
das Buch locker lesen zu koennen...
: Da ich nicht über diverse Büchersammlungen verfüge,
: kann ich leider nicht nachsehen.
Das kann sich ja aendern...
: Mein C++-Kursleiter wußte auf anhieb keine Erklärung.
Hat euch der Kursleiter sowas wie unten beigebracht?
: #ifdef EXAMPLE1
: void main(void)
^^^^
Es gibt nur zwei portable Deklarationen von 'main()':
int main();
int main(int ac, char *av[]);
Alles andere sind nicht portable Erweiterungen. Insbesondere liefert
'main()' immer einen 'int'.
--
dietmar.kuehl@uni-konstanz.de
http://www.informatik.uni-konstanz.de/~kuehl
I am a realistic optimist - that's why I appear to be slightly pessimistic
Technical Details
Message-ID:
<312299dd.0@news.uni-konstanz.de>Path:
arc1-ca.pugleaf.net!news.uni-konstanz.de!horn!kuehlReferences:
<62mRM9kpa8B@gumption.ruhr.de>Show Full Headers
Complete Article Headers
From: kuehl@horn.informatik.uni-konstanz.de (Dietmar Kuehl) Subject: Re: IOSTREAM.H Newsgroups: de.comp.lang.c++ References: <62mRM9kpa8B@gumption.ruhr.de> Organization: Fakultät für Mathematik und Informatik Reply-To: dietmar.kuehl@uni-konstanz.de X-Newsreader: TIN [version 1.2 PL2] NNTP-Posting-Host: horn.informatik.uni-konstanz.de Message-ID: <312299dd.0@news.uni-konstanz.de> Date: 15 Feb 96 02:26:37 GMT Path: arc1-ca.pugleaf.net!news.uni-konstanz.de!horn!kuehl