microblaze getchar() not functioning properly
Michael Eager
eager@eagerm.com
Thu Jul 28 15:18:00 GMT 2011
On 07/28/2011 04:30 AM, naga raj wrote:
> I have observed following output:
>
> main
> input value of i is:a ---------->my input ( I have not
> pressed any key after entering 'a')
> value of j is:0
> input value of i is: -------------> It is automatically
> skipping to take my input
> value of j is:1
You get better info if you print values in hex, rather than character.
How would you know that the extra character is a null and not a CR or LF?
> I have given the input to the program using HyperTerminal. I have
> entered only abc as my input.
>> Why do you think that this is a problem in getchar()?
>
> With the above observation I am thinking that getchar() function is
> appending a null character after each character.
I think that it is extremely unlikely that buffered input, which
getchar() uses, is inserting extra characters into the input stream.
You need to be careful using a terminal emulator (whether Hyperterminal,
minicom, or any other). There are lots of problems when buffered input
and output are interspersed. Check your configuration.
You can use GDB, as Jeff suggests, to step through getc() (which getchar()
calls) and see what actually is received from the terminal emulator.
--
Michael Eager eager@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306 650-325-8077
More information about the Gcc-help
mailing list