【问题标题】:Nothing working when trying to run C programs?尝试运行 C 程序时没有任何工作?
【发布时间】:2014-02-10 05:15:07
【问题描述】:

我一直在尝试使用 Cygwin64 编译和运行 C 程序。我一直在尝试运行一个简单的 Hello World 程序,如下所示:

#include <stdio.h>


int main()
{
    printf("Hello world!");
}

在 Cygwin 中,我一直在输入以下命令:

gcc -o hello hello.c

紧随其后

./hello.exe

之后,根本没有输出,我收到一个新的提示。 有没有人可以解决这个问题?

【问题讨论】:

  • 您确定 gcc 正在添加 .exe 扩展吗?
  • 我尝试在程序必须停止的地方添加类似的输入,但同样的事情发生了,我收到了一个新的提示。我还看到 gcc 在同一目录中创建了一个名为 hello.exe 的新文件。
  • 你的可执行文件名只是hello,试试这个:./hello
  • 我也得到了相同的输入结果
  • 尝试在"Hello world!"之后添加\n,即"Hello world!\n"

标签: c gcc cygwin


【解决方案1】:

Gcc 不为输出可执行文件提供.exe 扩展名。您正在给出gcc -o hello hello.c 命令,然后它会生成名称为hello (not hello.exe) 的可执行文件。如果你没有给输出文件命名,它会生成名为a.out的可执行文件

【讨论】:

  • 即使我输入 gcc -o hello.exe hello.c 然后运行 ​​./hello.exe 我仍然没有输出。
【解决方案2】:

我猜想在程序执行后打印的提示是通过首先将光标返回到第 0 列来打印的。这就是覆盖“Hello World!”。您打印的消息。您可能应该将"\r\n" 添加到您的printf 调用中,如下所示:

#include <stdio.h>

int main()
{
    printf("Hello world!\r\n");
}

这将在退出之前将光标移动到下一行,以便将提示打印在下一行。

【讨论】:

  • 为什么是“\r\n”而不仅仅是“\n”?请证明。
  • 不...仍然没有输出
【解决方案3】:

我猜你只需要暂停你的程序。

可以用 get()、scanf() 来完成 你也应该做一个 return 0;在代码的末尾

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 2018-10-18
    相关资源
    最近更新 更多