.exe 文件在代码编辑器外突然关闭

.exe file closing abruptly outside code editor

所以我编译并 运行 下面的 C 程序:

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

int main()
{
    int **p,n,i,j,trace=0;
    printf("Enter the order of the square matrix\n");
    scanf("%d",&n);
    p = (int**)malloc(n*sizeof(int*));
    for(i=0;i<n;i++)
    *(p+i) = (int *)malloc(n*sizeof(int));
    for(i=0;i<n;i++)
    for(j=0;j<n;j++)
    {
        printf("Enter the element in row number %d and column number %d\n",i+1,j+1);
        scanf("%d",*(p+i)+j);
    }
    printf("The input matrix is \n");
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            printf("%d\t",*(*(p+i)+j));
            if(i==j)
            trace += *(*(p+i)+i);
        }
        printf("\n\n\n");
    }
    printf("The trace of given matrix is %d",trace);
    return 0;
}

无论我使用 Geany、Dev C++ 还是 VS 代码,当我在编辑器中使用 运行 命令时,运行ning 都非常好。

如果我打开 cmd 也运行没问题,然后将目录更改为包含该文件的目录,然后 运行 这个。

然而,当我在 windows 资源管理器中直接单击 .exe 文件时,它在接受输入后突然关闭,没有显示输出。知道有什么问题吗?

因为一旦执行完所有命令,终端就会自行关闭。

#include <stdio.h>
#include <stdlib.h> /*
#include <conio.h>  */ //remove comment markers if using getch() instead of getchar(),
                       //otherwise don't use it. It might not compile on some compilers
int main() {
    int **p,n,i,j,trace=0;
    printf("Enter the order of the square matrix\n");
    scanf("%d",&n);
    p = (int**)malloc(n*sizeof(int*));
    for(i=0;i<n;i++)
    *(p+i) = (int *)malloc(n*sizeof(int));
    for(i=0;i<n;i++)
    for(j=0;j<n;j++)
    {
        printf("Enter the element in row number %d and column number %d\n",i+1,j+1);
        scanf("%d",*(p+i)+j);
    }
    printf("The input matrix is \n");
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            printf("%d\t",*(*(p+i)+j));
            if(i==j)
            trace += *(*(p+i)+i);
        }
        printf("\n\n\n");
    }
    printf("The trace of given matrix is %d",trace);

    printf("Enter any key and enter to continue...");
    getchar();   //_getch(); does not belong to standard library. use conio.h header at top
    return 0;
 }

我在末尾添加了 getchar() ,它将读取一个值并在您按下回车键后关闭终端。 getch 提供用任意键结束程序的功能,但不属于标准库。如果使用 getch,请使用 conio.h header。