I\'m trying to read a character from the console (inside a while loop). But it reads more than once.
Input:
a
Output:
you could always use char a = fgetc (stdin);
. Unconventional, but works just like getchar()
.
scanf("%c",&in);
leaves a newline which is consumed in the next iteration.
Change it to:
scanf(" %c",&in); // Notice the whitespace in the format string
which tells scanf to ignore whitespaces.
OR
scanf(" %c",&in);
getchar(); // To consume the newline
To read just one char, use getchar instead:
int c = getchar();
if (c != EOF)
printf("%c\n", c);
in scanf("%c",&in);
you could add after %c
a newline character \n
in order to absorb the extra characters
scanf("%c\n",&in);
you can do like this.
char *ar;
int i=0;
char c;
while((c=getchar()!=EOF)
ar[i++]=c;
ar[i]='\0';
in this way ,you create a string,but actually it's a char array.