이 코드 작업의 벌금 종료되지 않은 경우 값을 인쇄하지 않으면 서 '\ n'을 제거하면 아무 것도 인쇄되지 않습니까? 수면() 루프는 n
int main()
{
while(1){
printf("hi");
sleep(1);
}
return 0;
}
출력
: NO OUTPUT 기본적으로 버퍼링 경우Plz은 사람이 그래서 당신은 밖으로 \n
을해야로 세척하거나 완전히 그 내부 버퍼를 채울 방법이 문제 :)
이 코드 작업의 벌금 종료되지 않은 경우 값을 인쇄하지 않으면 서 '\ n'을 제거하면 아무 것도 인쇄되지 않습니까? 수면() 루프는 n
int main()
{
while(1){
printf("hi");
sleep(1);
}
return 0;
}
출력
: NO OUTPUT 기본적으로 버퍼링 경우Plz은 사람이 그래서 당신은 밖으로 \n
을해야로 세척하거나 완전히 그 내부 버퍼를 채울 방법이 문제 :)
stdout
의 explaination를 제공합니다.하지 이러한 동작이 바람직하지 않은 경우 fflush(stdout)
을 사용하여 수동으로 플러시하거나 setbuffer(stdout, NULL, 0)
을 사용하여 버퍼링을 해제 할 수 있습니다.
인쇄물이 보이지 않는 이유는 출력이 버퍼링되어 있기 때문입니다.
접미사를 \ n 인쇄 할 때 나타나는 이유는 일부 시스템에서는 줄 바꿈으로 인해 버퍼가 플러시됩니다. 당신과 같이 수동으로 표준 출력을 세척 할 수 있습니다
int main()
{
while(1)
{
printf("hi");
fflush(stdout);
sleep(1);
}
return 0;
}
확인이 : http://stackoverflow.com/questions/1716296/why-does-printf-not-flush-after-the-call-unless-a-newline -is-in-the-format-strin – babon