프로그래밍 공부한지 한달차이고 1회완독이라서 질문이 병신같아도 이해좀 해줘
취미로하는거긴 한데
c++로 넘어가기 전에 다 끝낸 기념으로다가 게임이든 뭐든 긴 프로그램 하나 짜보려고 해
게임같은거 보면 엔터키 안누르고 그냥 명령 넣잖아 뭐 a는 공격 s는 점프 뭐 이렇게
그런데 c는 다 콘솔에다 숫자 문자 넣고 엔터 눌러야 되잖아
그래서 엔터를 누르지 않고도 명령을 내릴수 있는 방법을 알고싶어
그리고 파일/콘솔 출력할때 명령에 따라서 버퍼에서 데이터가 나가는게 아닌지도 궁금해
버퍼가 비워지는 시점이 시스템마다 다르기 때문에 fflush를 쓴다고 했는데
예를들어
FILE * fp=fopen("asd.txt", "rt");
fputs("프갤 \n", fp)
이렇게 하면 시스템이 아무리 다르다고 해도 2번째줄에서 버퍼 비우고 파일로 데이터가 출력되는거 아냐?
어차피 명령하면 비워지는거는 매한가지 아닌가?
그런데 왜 굳이 fflush 같이 출력버퍼를 비우는 함수를 쓰는지 이해가 안가네
fflush함수를 써야되는 특별한 상황같은거나 예제같은 거 그리고 그 이유 정도 알려주면 정말정말정말정말x1000 감사할게
1. 엔터 누르는 거야 scanf() 같은 거나 그렇고 getchar() 쓰면 되지
ㄴ ㅋㅋ 내가 손코딩이랑 예제 해석만하고 책만 읽어서 getchar이 엔터 안먹는지 몰랐어 감사 ㅋ
2. fflush()를 쓰는 이유. scanf()는 줄넘김(엔터) 문자를 받기 '전'까지 문자를 처리한다. 결과적으로 scanf()를 쓴 직후라면 입력 버퍼(stdin)에 줄바뀜 문자가 들어있기 때문에 나중에 문제가 생길 여지가 있다. 그래서 scanf()를 쓴 직후나 입력을 받기 전에 fflush()를 쓰는 것이다.
ㄴ아 그니까 안전빵으로 버퍼에 뭐가들어있는지 모를때 쓴다는거네 그런데 나는 출력버퍼가 궁금한거라서 ㅠ
그리고 fflush 입력버퍼 비울때 안쓴다고 들었는데?? 특히 파일 입력시에는 입력버퍼를 비울 필요가 없다그랬고
플러시는 표준이아니라 뉴비는안쓰고 코딩하는게조타
ㄴ 표준이 뭔데 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ