我刚刚输入了K& R的例子......
#include <stdio.h>
int main (int argc, const char * argv[]) {
int c, nl;
nl = 0;
while ((c = getchar()) != EOF) {
if (c == '\n') {
++nl;
}
}
printf("new lines=> %d\n", nl);
return 0;
}
然而,当我建立&amp;跑,我明白......
minimac:~ alex$ /Users/alex/Documents/K\&R/build/Debug/K\&R ; exit;
您可以收集,运行Mac OS X终端,如果这意味着什么。
为什么这不会提示输入?
以下是我在Mac OS X Snow Leopard上启动项目的方法
K&R
main.c
K&R
,使用上面的输出启动终端我可能还说我一直都在使用解释语言,所以我不熟悉这个编译过程。
当我使用gcc
从终端进行编译时,我可以使用./a.out
运行程序。但是,一旦我输入,我不知道如何告诉程序我已经完成了,现在请告诉我我输入了多少行。
以下是我的终端的截图...
Terminal http://alexanderdickson.com/hosted/stackoverflow.com/terminal-k-r.png
答案 0 :(得分:2)
好的,我刚刚按照你在步骤中说的做了,我就可以输入终端了。但是,在我看到程序的输出之前,终端已关闭(因为exit;
)。我在开始时添加了#include <unistd.h>
,在sleep(2);
之前添加了return 0;
,我可以看到正确的输出。
这是完整的程序:
#include <stdio.h>
#include <unistd.h>
int main (int argc, const char * argv[]) {
int c, nl;
nl = 0;
while ((c = getchar()) != EOF) {
if (c == '\n') {
++nl;
}
}
printf("new lines=> %d\n", nl);
sleep(2);
return 0;
}
答案 1 :(得分:0)
看起来你在Xcode中这样做了。不确定Xcode如何处理stdin / out以及您正在使用的项目模板。你应该把所有这些都放在一个简单的.c文件中,然后在没有Xcode的情况下自己编写gcc,然后看看会发生什么。
编辑:在Unix控制台中,按Ctrl-D结束stdin输入到命令行程序。 Wikipedia has more.