2010-01-18 131 views
1

我通常使用的XCode但有打开一个文件,这个代码的问题:保持控制台窗口打开在Visual Studio(C)

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

int main(void) 
{ 
    printf("Hello"); 
    FILE *filePtr; 

    filePtr = fopen("test.txt", "r"); 
    if (filePtr == NULL) 
    { 
     fprintf(stderr, "Can't open \"test\"\n"); 
     exit(EXIT_FAILURE); 
    } 
    else 
    { 
     int x; 

     printf("File open successful\n"); 
     /* read one character at a time until EOF is reached */ 
     while ((x = fgetc(filePtr)) != EOF) 
     { 
     //printf("%c", x); 
     fprintf(stderr, "%x\n",x); 
     } 
    } 
    fclose(filePtr); 
    system("pause"); 

    return EXIT_FAILURE; 
} 

控制台窗口关闭如此之快,在VS它的底部栏说:''C_test.exe':加载'C:\ WINDOWS \ WinSxS \ x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.30729.1_x-ww_f863c71f \ msvcr90d.dll' 程序'[1116] C_test.exe:Native'已退出代码1(0x1)“。 这是什么意思?

另外,任何人都可以指出我VS良好的起点/教程?谢谢。

+1

为什么要返回'EXIT_FAILURE'? – SLaks 2010-01-18 03:16:03

+0

对不起,这意味着返回0。 – Crystal 2010-01-18 03:18:36

回答

1

您看不到它的原因是因为您的程序在执行过程中不可能暂停。在Visual Studio中,典型的行为是在程序完成其执行的第二个窗口关闭控制台窗口。

底部的栏是告诉你,程序完成,返回值是什么(在这种情况下是1)。

我也是会做的是节目与的#ifdefs出口点前添加代码:

#ifdef VS_DEBUG 
fgetc(STDIN); 
#endif 

现在,当它完成你的程序将暂停,等待按键,然后关闭窗口。

我敢肯定在项目设置中还有一种方法可以防止关闭,我从来没有看过自己。

1

我一般离开断点上的主力右括号,使我的窗口的输出是在调试时可见,但Visual Studio将保持控制台窗口打开,如果你启动的程序,而不调试(Ctrl + F5)。或者,您可以简单地要求输入,@ MadcapLaugher的fgetc(STDIN);可能是您最好的选择 - 虽然我会添加提示:"Press any key to continue... "

相关问题