Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C Visual studio 2010在程序结束后退出_C_Visual Studio 2010_Visual Studio - Fatal编程技术网

C Visual studio 2010在程序结束后退出

C Visual studio 2010在程序结束后退出,c,visual-studio-2010,visual-studio,C,Visual Studio 2010,Visual Studio,我正在编译一个C程序来试用VisualStudio2010。在DOS命令窗口中显示解决方案后,该窗口立即关闭。在VisualStudio2008中,会收到消息“按任意键继续”并按某个键关闭命令提示窗口。如何在2010年设置此行为?这是正常的。DOS控制台窗口已连接到您的程序,并应在程序完成时退出。如果希望它保持打开状态,则需要向程序中添加代码以保持其打开状态。您只需添加一条打印语句,然后将该语句输入到程序的末尾。如果您在没有调试的情况下启动应用程序,则控制台窗口将保持打开状态,直到您按键。您可以

我正在编译一个C程序来试用VisualStudio2010。在DOS命令窗口中显示解决方案后,该窗口立即关闭。在VisualStudio2008中,会收到消息“按任意键继续”并按某个键关闭命令提示窗口。如何在2010年设置此行为?

这是正常的。DOS控制台窗口已连接到您的程序,并应在程序完成时退出。如果希望它保持打开状态,则需要向程序中添加代码以保持其打开状态。您只需添加一条打印语句,然后将该语句输入到程序的末尾。

如果您在没有调试的情况下启动应用程序,则控制台窗口将保持打开状态,直到您按键。

您可以添加此函数并在从main返回之前调用它:

void keep_window_open()
{
    // clear buffer
    fflush(stdin);
    printf("Please enter a character to exit\n");
    char ch;
    ch = getchar();
    return;
}
< >我在Bjarne Stroustrup的站点中从一个实用的头文件中从C++版本中改编的:

FWIW,“无调试启动”命令在VS2010中的工作方式与我在以前的Visual Studio版本中的工作方式完全相同,即,对于控制台项目,当进程终止时,按下任意键继续,控制台将保持打开状态。提示

那么,你到底是如何让VS2010运行你的程序的呢?如果使用的是Ctrl-F5快捷键,是否可以验证Ctrl-F5是否已绑定到Options/Environment/Keyboard中的Debug.StartWithoutDebugging


另外,您可以尝试在不调试的情况下使用“调试/启动”菜单运行程序吗?

在谷歌搜索了一下之后,我找到了一个不需要修改代码的解决方案。它包含一个涉及修改.vcxproj文件的变通方法

从微软Visual C++ 2010 Express中这样做,假设它与VisualStudio 2010类似,打开项目并导航到以下菜单:

Project->$YOURPROJECTNAME Properties...
    ->Configuration Properties
        ->Linker
            ->System->SubSystem
然后使用下拉菜单选择Console/SUBSYSTEM:Console并应用更改


不进行调试,现在应该做正确的事情。

< P>这是因为现在在VS 2010中,可以在默认情况下创建一个空的、通用的C++项目,而不必通过向导。这会导致VS2010没有正确设置Console/SUBSYSTEM:Console标志,因此VS2010不知道它是一个控制台应用程序,它会发送通常按任意键的命令。。。提示

如果从“新建项目”菜单创建控制台应用程序项目类型,则不会出现此问题


但是你可以通过项目/设置自己和其他人设置这个标志,因为上面的帖子回答正确

如果希望它保持打开状态,则需要向程序中添加代码。喜欢吗

#include <stdio.h>
#include <stdlib.h>

... main(...)
{
    your codes
         .
         .
         .

     system("pause");

}

如果您添加此代码,您的黑屏将保持打开状态。系统暂停在stdlib.h头文件中。

将“无调试启动”带到“调试”菜单

工具>>自定义>>命令选项卡>>菜单栏下拉列表>>调试控件选项>>添加命令按钮>>调试类别列表>>无调试启动


使用“无调试启动”将允许VS2010在退出前显示“按任意键继续”短语

嗯…实际上是我干的。我知道这也适用于VisualStudio2008,我使用这个命令来运行我的程序。因此,我在2010年对这种不同的行为感到有点惊讶。我可以确认,在2010年使用start而不调试不会在程序退出后保持控制台窗口打开。是的,在Visual studio 2008中,它的行为与预期的一样。我已经重新启动了我的机器,但我仍然会遇到与2010相同的奇怪行为。在VS2010中没有什么不同,当程序完成时,按Ctrl+F5会调用“按任意键”提示。是的,我知道“启动”的快捷方式,但在我的情况下,控制台窗口会立即关闭。这很奇怪,非常感谢。我不得不把线移到大括号后面{函数定义后,以避免编译错误。我认为FFLUSHSTDIN是C++代码,在C中工作不好。根据C FAQ:FFLUH只定义为输出流。FAQ条目的链接讨论如何刷新输入:1投票。这段代码已经成为救世主。但是Viviavm看到了顶部的帖子找到了这个错误的正确解决方案,我接受了vitavim的回答。谢谢。首先我编译文件,然后构建它,然后使用Debug>start而不进行调试。我已经按照您告诉我的那样分配了Ctrl-F5,但我得到了相同的行为。我承认这很奇怪,因为Visual studio 2005工作正常。@YCallecharan:Interesting-我不知道有什么设置可以控制它。是的,很难相信这种奇怪的行为。太好了。这很好。我也给了你1票。我使用的是快速版。这对我来说很好。谢谢。有没有办法自动将此解决方案应用到所有项目中?如果你解释一下如何解决,你的答案会更好一些这本该起作用的。就目前情况来看,这是一个神秘的咒语 而读者并没有学到多少东西。