初学者爱好程序员在这里。我习惯于在OSX中运行C,使用GCC编译,但最近我不得不切换到Windows。我正在使用Visual Studio Express 2010编译我的代码Microsoft。编译运行正常,但之后当我尝试运行它时,它只会闪烁一毫秒,然后关闭。我该如何解决这个问题?
这发生在我尝试过的所有脚本上,但这里有一个特别的,来自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("%dt%dn", 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(( 末尾调用一些输入以保持窗口打开。