2010-01-23 67 views
3

我正在学习C与The C Programming Language(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标记。为了适应这一点,我用一个换行符代替了新条件,用替换为"\n",它也没有任何作用,并给我一个int指针比较警告。

我在这里做错了什么?

我可以使用xcode关注K & R吗?

+0

使用'\ n'可能会更好; \ \是转义字符。 – Skurmedel 2010-01-23 00:26:58

+0

哎呀,哈哈,我在这个问题上输入错了,我把\ n放在了我的程序中,但它仍然无效。 感谢您捕捉,但。 – deeb 2010-01-23 00:32:15

回答

11

类型^D(控件-d)发送一个EOF

如果要换行换行,则需要比较返回值getchar'\n'而不是"\n"。前者是换行符的实际值char;后者是一个指向具有该值的char的指针。如果这对你还没有意义,不要担心,一旦你阅读了更多内容。

+0

我测试了这个,它完美的作品。 – 2010-01-23 00:29:52

+0

是的!万分感谢! – deeb 2010-01-23 00:30:35