I set stdin
full-buffered as follows:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char buffer[BUFSIZ];
if (setvbuf(stdin, buffer, _IOFBF, BUFSIZ) != 0) { // here
printf("an error occured.\n");
exit(1);
}
int number;
scanf("%d", &number);
printf("number : %d\n", number);
return 0;
}
However, the result suggests that stdin
is still line-buffered. Why is that?
3
number : 3