这里是初学者爱好程序员。我习惯在 OSX 中使用 GCC 编译运行 C,但最近不得不切换到 Windows。我正在使用 Microsoft Visual Studio Express 2010 编译我的代码。编译进展顺利,但之后当我尝试运行它时,它只会闪烁打开一毫秒,然后关闭。我该如何解决这个问题?
我尝试过的所有脚本都会出现这种情况,但这里有一个特别的问题,即 K&R 的经典华氏度和摄氏度转换器,它不起作用。 如果这是一个愚蠢的问题,抱歉。两周前刚开始学习C。
#include <stdio.h>
main()
{
int fahr, celsius;
int lower, upper, step;
lower = 0;
upper = 300;
step = 20;
fahr = lower;
while (fahr <= upper) {
celsius = 5 * (fahr-32) / 9;
printf("%d\t%d\n", fahr, celsius);
fahr = fahr + step;
}
}
在最后一个括号
getch()
之前放置一个 }
,这需要在程序退出之前按一下按键
我建议这个而不是
ctrl-f5
的唯一原因是它教你另一个C命令:)
[编辑]
让我为您正在做的事情添加更多信息。
main 的正确签名是
int main(int argc, char **argv)
,这是您的程序中应该具有的值(以替换当前存在的单行 main()
。您不必对这些变量(argc 和 argv)执行任何操作,您(程序员)可能不会使用它们。 但是,函数名称(main)前面出现
int
意味着它应该返回一个值。 再说一次,你可能不在乎。 然而,将来,您或负责您代码的人会关心的。 这意味着您的 main
函数应该返回一些值,向底层操作系统表明它是成功还是失败(此外,如果您在 shell 脚本中使用程序,则需要使用一些值)。暂时,在前面提到的
return(0)
之后,一个简单的getch()
就可以很好地完成工作。 听起来您正在尝试使用 F5 在调试器下运行程序。 成功完成后,调试器将立即退出。 尝试在调试器外部运行,完成后它将暂停以按下按键:Ctrl+F5
注意:术语脚本对于 C 来说并不准确。C 是一种编译语言,因此通常称为程序与脚本。
您引用的程序将一系列华氏温度转换为摄氏度,打印结果,然后立即退出。这就是源代码所说的:其中没有任何内容可以使其保持打开状态。
如果您在 Unix 环境中编译和运行,您很可能从(虚拟)终端内的 shell 运行它,当程序完成时,shell 会给出一个新的提示符,但使程序的输出在上面可见它。然而,在 Windows 上,启动程序的标准方法不涉及 shell 或终端窗口,因此程序只是将其输出写入您看不到的地方并退出(或者它打开一个终端窗口,但在它之后立即将其关闭)运行完毕)。
要在 Windows 中查看输出,您可以自己打开一个终端窗口(运行 cmd.exe)并从那里启动程序,或者您可以在末尾添加
getch()
调用,使程序在按下之前等待按键退出。
您可以直接从命令行而不是从 IDE 运行可执行文件,或者在 main() 末尾调用一些输入以保持窗口打开。