Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: XP bug? (code fragment)

Author: Bas Hamstra

Date: 12:41:33 08/27/04

Go up one level in this thread


On August 27, 2004 at 15:07:28, Gerd Isenberg wrote:

>On August 27, 2004 at 14:58:56, Gerd Isenberg wrote:
>
>>On August 27, 2004 at 14:28:06, Bas Hamstra wrote:
>>
>>>The following program gives me other output in XP than under previous windows
>>>versions:
>>>
>>>#include <stdio.h>
>>>#include <conio.h>
>>>
>>>int main(int argc, char* argv[])
>>>{       char Buf[16] = {0};
>>>
>>>        setbuf(stdin, NULL);
>>>
>>>        while(1)
>>>        {   if(kbhit() )
>>>            {   gets(Buf);
>>>                printf("Received: %s\n", Buf);
>>>            }
>>>        }
>>>        return 0;
>>>}
>>>
>>>Output:
>>>
>>>aaa
>>>Received: Paa
>>>
>>>So, if after typing aaa the first character seems to go lost. I am pretty
>>>certain that under Win98 it worked like intended. Is this a bug?
>>>
>>>(I am using XP with Borland C++ Builder 4.0)
>>>
>>>Bas.
>>
>>
>>with msc6 under XP i get
>>aaa  (or any other sequence)
>>Received: d
>>
>>Seems that stdin does not work unbuffered.
>>
>>Gerd
>
>
>from
>
>http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/HTML/_crt_setbuf.asp
>
>...
>
>setbuf has been replaced by setvbuf, which is the preferred routine for new
>code. setbuf is retained for compatibility with existing code.

Yes, that seems to solve the problem... Thanks Gerd.

Bas.



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.