编译的c脚本只能在几分之一秒内保持打开状态

时间:2012-02-15 20:31:09

标签: c windows visual-studio-2010 compiler-construction command-line

初学者爱好程序员在这里。我习惯在使用GCC编译OSX中运行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;
      }
   }

4 个答案:

答案 0 :(得分:3)

在最后一个大括号getch()之前加},这需要在程序退出前按键

我建议这个而不是ctrl-f5的唯一原因是它教你另一个C命令:)

[编辑]
让我为你正在做的事情添加更多信息。

main的正确签名是int main(int argc, char **argv),这是您应该在程序中使用的值(替换当前存在的单行main()

您不必对这些变量(argc&amp; argv)执行任何操作,程序员可能不会使用它们。但是,函数名称(main)上存在前面的int意味着它应该返回一个值。再说一次,你可能不在乎。但是,将来,您或负责您的代码的人员会关心。这意味着你的main函数应该返回一些值,表示它对底层操作系统的成功或失败(也就是说,如果你在shell脚本中使用你的程序就应该使用它)。

目前,在上述return(0)之后,一个简单的getch()可以很好地完成工作。
[/编辑]

答案 1 :(得分:2)

听起来你正试图用 F5 在调试器下运行程序。成功完成后,调试器将立即退出。尝试在调试器外部运行,它将在完成后暂停按键: Ctrl + F5

注意:术语脚本对于C来说并不准确.C是一种编译语言,因此通常称为程序与脚本。

答案 2 :(得分:1)

您引用的程序会将华氏温度范围转换为摄氏温度,打印结果并立即退出。这就是源代码所说的内容:它没有任何内容可以让它保持开放状态。

如果你在Unix环境中编译和运行,你最有可能在shell(在一个(虚拟)终端内)运行它,当程序完成时,shell会给你一个新的提示,但是会保留程序的输出它上方可见。但是,在Windows上,启动程序的标准方法不涉及shell或终端窗口,因此程序只是将其输出写入您无法看到和退出的位置(或者它打开一个终端窗口,但在它之后立即关闭它完成运行)。

要在Windows中查看输出,您可以自己打开终端窗口(运行cmd.exe)并从那里启动程序,或者您可以在最后添加getch()调用以使程序等待在退出之前按键。

答案 3 :(得分:0)

您可以直接从命令行运行可执行文件,而不是从IDE中运行,或者在main()的末尾调用一些输入以保持窗口打开。