🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Gordon Joly Statistics UCL Mon, 09 Jan 1989 17:14
Problem with streams.
#1610
Author: Gordon Joly Statistics UCL
Date: Mon, 09 Jan 1989 17:14
94 lines
3642 bytes
The following program compiles and runs with g++ 1.32 under
SunOS 3.4 on a SUN 3/160. gdb+ version 2.8.1.

9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9

     1	#include <stream.h>
     2	
     3	main()
     4	{
     5		char c;
     6	
     7		switch (cin.rdstate()){
     8		case _good: cerr << "Status good\n"; break;
     9		case _eof: cerr << "Status eof\n"; break;
    10		case _fail: cerr << "Status fail\n"; break;
    11		case _bad: cerr << "Status bad\n"; break;
    12		default: cerr << "PANIC";
    13		}
    14		cerr.flush();
    15		while ( cin.get(c) )
    16		{
    17			cerr << " Char was : "; cerr.put(c); cerr << "\n";
    18			switch (cin.rdstate()){
    19			case _good: cerr << "Status good\n"; break;
    20			case _eof: cerr << "Status eof\n"; break;
    21			case _fail: cerr << "Status fail\n"; break;
    22			case _bad: cerr << "Status bad\n"; break;
    23			default: cerr << "PANIC";
    24			}
    25			cerr.flush();
    26		}
    27		cerr << "ABOUT TO DIE\n";
    28		switch (cin.rdstate()){
    29		case _good: cerr << "Status good\n"; break;
    30		case _eof: cerr << "Status eof\n"; break;
    31		case _fail: cerr << "Status fail\n"; break;
    32		case _bad: cerr << "Status bad\n"; break;
    33		default: cerr << "PANIC";
    34		}
    35		cerr.flush();
    36	}
9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9

Here is the tail of the gdb+ output.

9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9
(gdb+) i b
Breakpoints:
Num Enb   Address    Where
#1   y  0x0000243e  in main (nod3.cc line 27)
#2   y  0x00002334  in main (nod3.cc line 18)
(gdb+) 
Bpt 2, main () (nod3.cc line 18)
18                      switch (cin.rdstate()){
1: cin = {
<struct File> = {fp = 0x20850, nm = 0x235bc "(stdin)", rw = 1 '\001', state = _good, stat 
= 0}
members of struct istream: tied_to = 0x0}
(gdb+) c
Continuing.
Status good
^D
Bpt 1, main () (nod3.cc line 27)
27              cerr << "ABOUT TO DIE\n";
1: cin = {
<struct File> = {fp = 0x20850, nm = 0x235bc "(stdin)", rw = 1 '\001', state = 3, stat = 0}
members of struct istream: tied_to = 0x0}                             ^^^^^^^^^
(gdb+) c                                                              ^^^^^^^^^
Continuing.
ABOUT TO DIE
PANIC
Program exited with code 070.
(gdb+) 


9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9*9

Should cin.state be 3 ? Cf page 238, Section 8.4.2 of Stroustrup.
Please send a copy of any reply to me directly.
Thanks,

Gordon Joly.

Surface mail: Dr. G.C.Joly, Department of Statistical Science,
      University College London, Gower Street, LONDON WC1E 6BT, U.K.
E-mail:  					   | Tel: +44 1 387 7050
 JANET (U.K. network) gordon@uk.ac.ucl.stats       |      extension 3636
       (Arpa/Internet form: gordon@stats.ucl.ac.uk)| FAX: +44 1 387 8057
Relays: ARPA @nss.cs.ucl.ac.uk                     |
        EAN: @ean-relay.ac.uk                      |
	CSNET: %nss.cs.ucl.ac.uk@relay.cs.net      |
        BITNET: %ukacrl.bitnet@cunyvm.cuny.edu, @ac.uk
        EARN: @ukacrl.bitnet, @AC.UK, @uk.ac.earn-relay
By uucp/Usenet: ....!uunet!mcvax!ukc!stats.ucl.ac.uk!gordon
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads