printf,gets같은 함수 버퍼관련 질문
한내
2023.04.01
질문 제목 : printf,gets같은 함수 버퍼관련 질문질문 요약 :printf,gets같은 함수 버퍼관련 질문질문 내용 :
제가 질문할거는 printf gets puts getchar 에 관한것입니다.
만약 getchar로 문자하나 입력받으면 입력되는건 (문자하나)+\n이죠.
그래서(문자하나)+\n 이게 입력버퍼로 가죠
근대 putchar는 문자하나만 가져오니 \n남잖아요.
그래서 그다음에 뭘 입력받으려고하면 \n가입력되서 기회를 놓치자나요..(해결책알고있음)
근대 이거에 대해 궁금한점이있는데
getchar
putchar를 쓴뒤 scanf(%s,문자열배열)을 하면 이상하게 입력이 받아지더라고요.
gets를 쓰면 입력받을 기회가 없는데
근데 scanf(%c,문자변수);는 또 그게 아니더라고요..
즉 위에서 말한 6가지(get류,put류,printf,scanf)의 입력버퍼,출력버퍼의 관계등을 자세히 알고싶습니다.질문1.
getchar로 문자하나를 입력받으면, 예를들어 a를 입력후 엔터치면 a\n가 입력되죠. 그다음 putchar나 printf로 출력시 a만출력되고 \n은 출력되지않습니다... 그래서 버퍼에 \n가 남고 그다음에 gets를쓰면 \n가 읽혀서 입력받을기회를 놓치잖아요. 근대 왜 gets대신 scanf(%s,);를 이용하면 입력받을기회가 있는건가요??