C Quirk??

Eddie Wyatt edw at IUS1.CS.CMU.EDU
Fri Feb 5 06:45:01 AEST 1988


Not that this requires a net response, I just like reading my posts :-)


> 
> #include <stdio.h>
> #include <ctype.h>
> 
> main()
> {
>   char ch;
> 
>   puts("Enter a Character:  ");
> 
>   while( (ch = getchar()) )
>   {
>     if( isupper(ch) )
>       tolower(ch);
> 
>     printf("%c\n", ch);
>     puts("Enter a Character:  ");
>   }
> }


  You must also read the carriage return.  When you type a<return>
There are two character out there for you to read, not just one
as you might have thought - "a\n".

   There are a couple of approaches to deal with this.  One OS
depended would be to read characters as soon as they are typed,
hence not requiring the user to type a return.  Another probably
more applicatable, would be to clear the input line after reading.

#define		clearline()		while (getchar() != '\n')
.
.
.
ch = getchar();
clearline();
.
.
.
-- 

Eddie Wyatt 				e-mail: edw at ius1.cs.cmu.edu



More information about the Comp.lang.c mailing list