20.01.23 23:13 작성
·
387
1
#include <stdio.h>
int main() {
char c;
while ((c = _getch()) != '\n') {
printf("%c", c);
}
printf("\n");
}
위 코드에에서 _getch함수로 문자하나를 입력받고 그걸 변수c에 저장 후에 개행문자가 아닐때와 비교를 해서 개행문자가 c에 들어오면 종료되도록 하고 아니라면 출력을 하도록 만들었는데 실행을 해보면 개행을 하게되면 종료가 아니라 콘솔창에서 처음 입력을 받은 곳으로 돌아갑니다 그 이유가 무엇인가요?
답변 3
0
0
2020. 01. 24. 03:22
늦은 시간 답변 감사드립니다.
보내주신 링크에서 해결 실마리를 찾을 수 있었습니다. 한 강의씩 다 보고나면 꼭 다른분들께서 질문한게 있나 하고 질문들을 항상 보곤 하는데 이런식으로 완전히 질문에 정답을 제시하지않고 해결 할 수 있도록 솔루션을 주시는게 개인적으론 너무 마음에 듭니다. 덕분에 스스로 검색을 하면서 검색능력도 생기게 되는 것 같고, 검색을 하면서 새로운 것들도 더 알아가면서 좀 더 생산적으로 공부한다는 느낌이 드는 것 같습니다. 사실 온라인 강의 단점이 수동적으로 공부하게 되어서 싫어 했었는데 교수님 강의는 현강에서 수업을 듣는 것처럼 능동적으로 임하게 되는 것 같습니다. 그리고 교수님 강의를 들으면서 영어에 항상 주눅들어 있었는데 한강의 한강의 들을때마다 영단어 들에 익숙해지면서 저혼자서 영어로된 문서를 검색하고 읽는게 이제는 꺼리김이 없어졌습니다.
설날 잘 보내시고 늦었지만 새해복도 많이 받으세요 2020년도 같이 화이팅 했으면 좋겠습니다!
(그리고 자료구조랑 알고리즘 강의도 개인적으로 교수님께 들어보고 싶습니다 감사합니다.)
0
2020. 01. 24. 02:11
일단 _getch()가 선언되어 있는 헤더를 include하지 않으셨네요. 윈도우에서는 문제가 없으나 리눅스에서는 컴파일이 안됩니다.
질문하신 내용에 대해서는 아래 링크 참고하세요. 디버거로 추적을 해보셨다면 글의 내용을 이해하실 수 있을겁니다.
https://stackoverflow.com/questions/473661/why-doesnt-pressing-enter-return-n-to-getch