.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。
所以我编译并 运行 下面的 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。