я читал о потоках и обнаружил, что мы можем управлять потоками с помощью функции setvbuf()... было написано, что в режиме буферизации строки поток отправляет данные в файл, когда встречается новая строка, а в режиме без буферизации буферизация отсутствует. .. поэтому я написал следующий код...
#include<stdio.h>
int main()
{
setvbuf(stdin, NULL, _IONBF, 40);
setvbuf(stdout, NULL, _IONBF, 40);
while(1)
{
char a[40];
int n;
n=fread(a, 1, 4, stdin);
if(n>0)
fwrite(a, 1, n, stdout);
}
return 0;
}
поэтому я думаю, что, поскольку это небуферизованные потоки, ввод должен быть отправлен на стандартный вывод, как только я пишу на экран... но программа ждала, пока я нажму клавишу ввода после записи каждой строки, а затем на экране появился только вывод (как результат fwrite)... мой вопрос в том, почему программа ждала ввода (т.е. новой строки), когда это были небуферизованные потоки...