vs2022代码运行不了

vs2022运行代码出错,家谱管理系统源码运行时不出现界面,是按任意键关闭窗口

img

代码尚未运行到输出的地方,就崩溃了。如果程序本身不是你写的,大体正确的,检查下需要读取写入的文件是否存在,以及输入和操作的方式是否正确。如果代码是你写的,你可以以调试方式运行,看哪一行出错,贴出完整代码和出错的代码行给我看看。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/228975
  • 除此之外, 这篇博客: 图的遍历(深度优先与广度优先)中的 三:代码及注释(编译环境:vs2019) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    #include<stdio.h>
    #include<stdlib.h>
    #define M 20
    typedef char datatype; /*顶点信息数据类型*/
    
    typedef struct node {   /*边表结点*/
    	int adjvex;         /*邻接点*/
    	struct node* next;
    }edgeNode;
    
    typedef struct vnode {  /*头结点类型*/
    	datatype vertex;    /*顶点信息*/
    	edgeNode* firstEdge;/*邻接链表头指针*/
    }vexnode;
    
    typedef struct {           /*邻接表类型*/
    	vexnode adjList[M];  /*存放头结点的顺序表*/
    	int n, e;                 /*图的顶点数与边数*/
    }adjGraph;
    int visited[M];
    
    /*------建立无向图的邻接表算法-------*/
    void createAdjGraph(adjGraph* G)
    {
    	int i, j, k;
    	edgeNode* s;
    	printf("Please input n and e: ");
    	scanf_s("%d%d", &G->n, &G->e);              /*输入顶点数与边数*/
    	getchar();                             
    	printf("Please input %d vertex:", G->n);
    	for (i = 0; i < G->n; i++)
    	{
    		printf("请输入第%d个顶点:", i + 1);
    		scanf_s("%c", &G->adjList[i].vertex,1); /*读入顶点信息*/
    		getchar();
    		G->adjList[i].firstEdge = NULL;         /*边表置为空表*/
    	}
    	printf("Please input %d edges:", G->e);
    	for (k = 0; k < G->e; k++)                     /*循环e次建立边表*/
    	{
    		printf("请输入第%d条边:", k + 1);
    		scanf_s("%d%d", &i, &j);                 /*输入无序对(i,j),两个顶点的下标*/
    
    		//头插法
    		s = (edgeNode*)malloc(sizeof(edgeNode));
    		s->adjvex = j;                         /*邻接点序号为j*/
    		s->next = G->adjList[i].firstEdge;
    		G->adjList[i].firstEdge = s;           /*将新结点*s插入顶点vi的边表头部*/
    
    		s = (edgeNode*)malloc(sizeof(edgeNode));
    		s->adjvex = i;                         /*邻接点序号为i*/
    		s->next = G->adjList[j].firstEdge;
    		G->adjList[j].firstEdge = s;           /*将新结点*s插入顶点vj的边表头部*/
    	}
    }
    /*---函数print():邻接表存储结构---*/
    void print(adjGraph G)
    {
    	edgeNode* p;
    	int i;
    	for (i = 0; i < G.n; i++)
    	{
    		printf("%c  ", G.adjList[i].vertex);
    		p = G.adjList[i].firstEdge;
    		while (p)
    		{
    			printf("%d-->", p->adjvex);
    			p = p->next;
    		}
    		printf("\n");
    	}
    }
    
    void DFS(adjGraph G, int i)
    {
    	edgeNode* p;
    	printf("visit vertex: %c \n", G.adjList[i].vertex);/*访问顶点i*/
    	visited[i] = 1;			
    	p = G.adjList[i].firstEdge;
    	while (p)                 /*从p的邻接点出发进行深度优先搜索*/
    	{
    		if (!visited[p->adjvex])
    			DFS(G, p->adjvex);
    		p = p->next;
    	}
    }
    void DFStraverse(adjGraph G)
    {
    	int i;
    	for (i = 0; i < G.n; i++)
    		visited[i] = 0;     /*初始化标志数组*/
    	for (i = 0; i < G.n; i++)
    		if (!visited[i])  /*vi未访问过,!0为真*/
    			DFS(G, i);
    }
    
    int main()
    {
    	adjGraph G;
    	createAdjGraph(&G);            /*创建图的邻接表*/
    	printf("\n The Graph is:\n");
    
    	print(G);
    	DFStraverse(G);
    	return 0;
    }
    
  • 以下回答来自chatgpt:

    问题分析与解决方案:

    根据问题描述,程序在运行时出现了界面关闭的情况,需要确定程序的运行环境以及可能的代码问题。

    1. 运行环境问题:

    首先需要确定程序的运行环境是否符合要求,检查是否已经安装了需要的运行库和框架,如VC++运行库、.NET框架、MFC等。如果缺少必要的运行库或框架,程序将无法正常运行,需要进行安装。

    1. 代码问题:

    其次需要检查程序代码中可能存在的问题,如内存泄漏、空指针引用等情况,这些问题可能会导致程序运行不正常或直接崩溃。可以通过调试工具进行排查,查看程序在运行时哪里出现了异常或错误。例如,可以使用Visual Studio的调试功能,对程序进行单步调试,查看每个变量和语句的执行情况,找到程序出现问题的具体位置。

    此外,还可以尝试将程序在其他计算机上运行,检查是否出现相同的问题。如果在其他计算机上运行正常,可能是本机环境或配置问题导致程序无法正常运行。

    如果以上方法不能解决问题,可以尝试联系原代码作者或其他开发者,寻求帮助或建议。

    注:以上解决方案是基于一般情况的思路和常见错误的处理方法,具体问题具体分析,如果具体问题需要更详细的排查和解决方案,需要提供更具体的问题描述和代码示例。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^