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.