当前位置 - 무료 법률 상담 플랫폼 - 법률 문의 - C 언어 기능에 관해 제가 원하는 결과는 eeee가 3초 동안 화면에 머물렀다가 실행될 때 왜 아무것도 없는 것입니까?

C 언어 기능에 관해 제가 원하는 결과는 eeee가 3초 동안 화면에 머물렀다가 실행될 때 왜 아무것도 없는 것입니까?

이유: printf() 함수는 라인 버퍼링된 출력입니다.

Printf()는 매개변수를 화면에 직접 전송하지 않고 매개변수를 출력 버퍼에 출력합니다. 출력 버퍼는 일반적인 크기가 4096바이트인 메모리 영역으로, 4096자를 저장할 수 있습니다.

다음 상황 중 하나가 발생하면 출력 버퍼의 내용이 표준 출력(예: 모니터)으로 전송되며 이를 버퍼 새로 고침이라고 합니다.

1 . 줄바꿈 문자에 도달한 경우

3. 프로그램이 종료될 때

5. 출력 버퍼를 강제로 새로 고치는 fflush(stdout) 함수를 호출할 때.

화면 지우기 함수 clrscr()의 구체적인 구현은 알려지지 않았지만 출력 버퍼가 새로 고쳐지고 이어서 화면의 내용이 지워지게 됩니다.

위 내용이 이해되지 않으면 printf("eeee");를 다음 형식으로 바꿔서 실행할 수 있습니다.

1. 끝에 개행 문자를 추가하세요.

printf("eeee\n");

2. fflush(stdout)를 호출합니다. 위와 차이점은 래핑되지 않는다는 것입니다.

printf("eeee");

fflush(stdout);

3. 중간에 개행 문자를 삽입합니다:

printf("ee\nee" );

4. 중간에 개행 문자를 삽입하고 fflush()를 호출합니다.

printf("e\neee");

fflush(stdout );