2010-01-23 2 views
3

C 언어를 (K & R)으로 배우고 있습니다.xcode를 사용하여 C (K & R을 통해) 학습

필자는 텍스트 편집기와 gcc를 오가며 앞뒤로 움직이기를 원하지 않기 때문에 xcode를 IDE로 사용하기로 결정했습니다. 지금까지 1.5.2 절까지 문제없이이 책의 예제를 따라 할 수있었습니다. 유효 (?) 프로그램을 제공

...

#include <stdio.h> 

void main() 
{ 
    long nc; 

    nc = 0; 
    while (getchar() != EOF) 
     ++nc; 
    printf("%ld\n", nc); 
} 

은 ... 나는 많은 문자가 내 입력에 얼마나 말해 어떤 최종 출력을받을 수 없습니다. xcode 콘솔 창을 통해 입력을 입력합니다.

일부 디버깅시 내 프로그램이 while 루프에서 멈추고 EOF 토큰을 만나지 못하는 것 같습니다. 이 문제를 해결하기 위해 새로운 조건으로 개행 문자를 대체했습니다. EOF"\n"으로 바꾸 었으며, 아무 것도 수행하지 않고 포인터 비교 경고를 제공합니다.

내가 뭘 잘못하고 있니?

xcode를 사용하여 K & R을 따라갈 수 있습니까?

+0

'\ n'을 사용하면 더 잘 작동 할 수 있습니다.) \는 이스케이프 문자입니다. – Skurmedel

+0

아, 하하, 내가 질문에 타이포니, 나는 내 프로그램에 \ n 넣었지만 여전히 작동하지 않았다. 잡아 주셔서 감사합니다. – deeb

답변

11

^D (제어 -d)은 EOF을 전송합니다.

개행을 중단하려면 getchar의 반환 값을 이 아닌 '\n'과 비교해야합니다. 전자는 실제의 char 개행 값입니다. 후자는 해당 값을 갖는 char에 대한 포인터입니다. 그것이 당신에게 아직 이해가되지 않는다면, 걱정하지 마십시오, 더 많이 읽었을 것입니다.

+0

나는 이것을 테스트했으며 완벽하게 작동합니다. –

+0

예! 엄청 고마워! – deeb