I'm trying to read a character from the console (inside a while loop). But it reads more than once.
Input:
a
Output:
char : a char : char : '
Code:
while(..)
{
char in;
scanf("%c",&in);
}
How can i read only 'a'?
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
n using malloc 2) Read chars into the array until the it doesn't exceed n 3) If n chars are read and you want to read more than double the size of the array using realloc. This method is generally followed to avoid calling realloc too frequently. Otherwise, you may do the realloc with your preferred size.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 a newline character \n after %c 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.