2014-05-13 4 views
0
#include <stdio.h> 

enum { max_size_string = 127 }; 
static char string[max_size_string + 1] = " "; 

int main(int argc, char ** argv) { 
    printf("Type a string"); 
    fgets(string, max_size_string, stdin); 
    printf("The string is %s",string); 
    return 0; 
} 

콘솔 화면에서 뭔가를 입력 한 후 문자열을 입력하면 다른 printf가 출력을 인쇄합니다. 나는 실행의 순서를 이해할 수 없다.다음 코드는 무엇이 잘못 되었습니까?

enter image description here

답변

3

나는 문제가 printf() 버퍼 출력까지 중 하나

  • 가 끝나는 라인 (\n)
  • 를 얻을 당신 fflush(stdout) 당신이 스트림을 닫습니다
  • (폐쇄을 포함한다는 생각 프로그램이 종료되면 자동으로)

다음 내용이 더 적합한 지 확인하십시오.

printf("Type a string "); 
fflush(stdout); 
fgets(string, max_size_string, stdin); 
printf("The string is %s\n",string); // << Note I've added a line ending 
return 0; 
관련 문제