gpt4 book ai didi

c - 为什么这个简单的C命令行工具总是退出而不工作?

转载 作者:行者123 更新时间:2023-11-30 14:30:16 25 4
gpt4 key购买 nike

我刚刚输入了 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;
}

但是,当我构建并运行时,我得到...

minimac:~ alex$ /Users/alex/Documents/K\&R/build/Debug/K\&R ; exit;

正如您可能收集到的那样,运行 Mac OS X 终端(如果这意味着什么)。

为什么不提示输入?

更新

以下是我在 Mac OS X Snow Leopard 上开始项目的方式

  • 运行 Xcode
  • 启动了新项目“命令行工具”并将其命名为K&R
  • 将代码输入到 main.c
  • 点击“构建并运行”上方的大按钮
  • 双击 K&R,终端启动并显示以上输出

我还可以说,我几乎一生都在使用解释语言,所以我对这个编译过程很陌生。

当我使用gcc从终端编译时,我可以使用./a.out运行程序。然而,一旦我输入,我不知道如何告诉程序我已经完成了,现在请告诉我我输入了多少行

这是我的终端的屏幕截图...

Terminal
(来源:alexanderdickson.com)

最佳答案

好的,我刚刚按照您所说的步骤操作,并且可以在终端中输入内容。但是,在我看到程序的输出之前,终端已关闭(因为 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;
}

关于c - 为什么这个简单的C命令行工具总是退出而不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3464452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com