From: "Chris Hut" Newsgroups: comp.os.msdos.djgpp Subject: Re: extreeeeme newbie question Date: Thu, 8 Apr 1999 20:28:55 -0400 Organization: Wesleyan University Lines: 41 Message-ID: <7ejhhq$iqd@news.wesleyan.edu> References: <7ehdb0$3o2$1 AT fir DOT prod DOT itd DOT earthlink DOT net> NNTP-Posting-Host: chut.stu.wesleyan.edu X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.00.2014.211 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2014.211 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Jason Nehf wrote in message news:7ehdb0$3o2$1 AT fir DOT prod DOT itd DOT earthlink DOT net... > Okay, I'm trying to write a simple "Hello, world!" program. this is the > code: > > #include > #include > > int main() > { > clrscr(); > cout << "Hello, world!"; > getch(); > } > > But for some reason, the getch() is called first, THEN the cout, and the > clrscr() is never called at all!! I think this has something to do w/ the way output streams are handled in C++. "Hello, world!" is sent to the output buffer, but not displayed until the buffer is "flushed." The buffer isn't flushed to the screen until either a newline character ("\n") is read or input is pending. Adding \n to the end of your string makes the program work properly, so does adding " << flush;" to the end of the cout line; my guess is that C++ doesn't know that getch() means that input is pending, and just waits til the end of main() is reached, AFTER the getch() function. AFAIK isn't getch() a nonstandard C library function? using the istream buffer (a cin function) would probably work better. I *think* generally you want to try to avoid including non-standard C libraries, b/c they don't mesh well w/ some C++ functions (such as in this case). Sorry if this is confusing, I'm not quite sure I have it all down myself :-/, esp in terms of what's acceptable to include as far as C libraries go (I know that cstdlib, cstring, ctime and cctype are quite frequently used, so I'm wondering where that particular line is drawn...?). But hope this helps. Chris