기계과 좆밥인데 교수님이 존나 프로그래밍 배우라고 시켜서 공부하고 있는 게이야
질문 좀 할게
그 왜 있잖아 데니스 리치 옹이 쓴 The C Programming Language 책에 있는 예제 중에
문자열 개수 세기 프로그램.
교재에 나온 코드는
#include <stdio.h>
main()
{
long nc;
nc = 0;
while (getchar() != EOF)
++nc;
printf("%1d\n", nc);
}
이건데 아무리 문자를 쳐도 개수가 안나오더라고.
그래서 지식인에 검색해봤더니
#include <stdio.h>
main()
{
long nc;
nc = 0;
while (getchar() != '\n')
++nc;
printf("%1d\n", nc);
}
이렇게 바꿔줬더라.
원래에선 왜 안됐던건지 설명해줄 사람있어??
n아 아니라 \\n 일텐데
EOF라는건 End Of File이라고 하는데 지금 윈도우보니 -1이네. 근데 이런 정의는 시스템마다 달라질 수가 있어. 사실 이 대답은 이 질문이랑 상관없는 대답이고. 설명해나가면..
\\n이라는건 시스템에서 엔터를 의미해. 그러니깐 니가 열심히 치다가 엔터를 치면 넘어가게 되있는거지
저 책이 쓰여질때 어떤 시스템에서 언제 쓰여졌는지 모르겠지만 저 당시는 저게 맞을 수도 있고. 저자가 다른걸 의미했을수도 있어. 그게 다야.
\\n 인데 오탈자였다. 이해해줘 굽신굽신 암튼 고마워!
아마 프로그램을 끝내려면 Ctrl-Z나 Ctrl-D같은 특수키를 누르라고 설명이 있을것 같군