2011-09-15 6 views
4

줄 바꿈없이 c의 stdout에 "CLIENT>"를 인쇄하고 싶습니다.
printf ("CLIENT>");
은 enything을 인쇄하지 않습니다. 어떻게 해결할 수 있습니까?c 줄 바꿈없이 stdout을 인쇄 하시겠습니까?

#include <stdio.h> 
int main(void) 
{ 
    printf("CLIENT>"); 
    fflush(stdout); 
    return 0; 
} 

: 당신은 물리적으로 기록 된 데이터를 가지고 fflush를 호출 할 필요가 일부 컴파일러/런타임 라이브러리 (보통 오래된 것들)에

int main(){ 
    printf("CLIENT>"); 
    fflush(stdout); 
} 
+0

줄 바꿈이 형식 문자열에없는 한 [printf가 호출 후 플러시되지 않는 이유는 무엇입니까?] (http://stackoverflow.com/questions/1716296/why-does-printf-not-flush-after- the-new-line-is-the-format-strin) –

답변

4

전화 fflushprintf() 후 데이터 끝에 끝에 개행 문자가 있으면 보통은 이전 시스템에서도 fflush이 필요하지 않습니다.

+0

고맙습니다 ... :) – Hashan

2

:

int main(){ 
printf("CLIENT>"); 
} 
+0

고맙습니다 ....... – Hashan

+0

"보통 오래된 것들"? 사실이 아니다. 그것은 현대적인 환경이 아닌 모든 환경에서 사용되는 버퍼링 (buffering)으로 알려진 기능입니다.하지만 오래된 시스템에서는 사실상 부족합니다. (비록 내가 생각할 수도 없지만!) – gamen

8

printf 뒤에 fflush(stdout);을 시도하십시오.

fflush을 자주 호출하여 전화하지 않아도되고 싶다면 setvbuf을 조사 할 수 있습니다. 많은 양의 출력을 표준 출력에 쓰는 경우 setvbuf을 사용하면 성능이 저하 될 수 있습니다.

+1

+1 또한'setvbuf'를 언급합니다. – jweyrich

+0

많이 바꿔 주셔서 감사합니다 ... :) – Hashan

+0

그는 개행하지 않고 물었습니다. printf는 플러싱과 관계없이 개행을 계속 인쇄합니다. –

관련 문제