vs中移除源文件,怎么找回来

在一个文件中,创建了多个源文件,不小心移除掉一个源文件,怎么找回

废纸篓里有吗

没有彻底删除 可以直接添加回来吧

怎么移除的,直接delete了还是右键,排除的
如果是删除了,需要先从回收站里将它恢复
如果只是排除,它还在原来的位置,只不过项目里看不见了
可以右键,添加现有项,找到它,加回来

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7801660
  • 这篇博客你也可以参考下:vs中怎么添加外部头文件?
  • 除此之外, 这篇博客: 【数据结构】——栈和队列的数组vs链表,含实操源码(中缀表达式,括号匹配,循环队列实现)中的 (2)中缀表达式实现 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    问题:用栈实现中缀表达式的识别运算 (中缀表达式:运算符在数据中间,1+2*3-6这种。

    输入:1+2*3-6        输出:1

    输入:9+4*(2+3)        输出:33

    思想:创建一个数据栈OPND,一个符号栈OPTR,设OPTR栈头默认为  ’‘#“ ,字符串尾也添加 ’‘#“  ,用以表示结束(当两个#相碰撞时),接着遍历字符串为数据时,push数据进入OPND栈中,当遍历字符串为符号时,与符号栈OPTR栈顶元素比较,优先级比栈顶大就进栈。优先级比栈顶小就拿出数据栈中前两个数据与符号栈OPTR栈顶的符号进行运算。(下面有优先级对比解释)运算结果压栈到数据栈中。然后继续遍历字符串直到尾部#。

    总结符号优先级(四则运算)

    \Theta1:符号栈OPTR栈顶的运算符 

    \Theta2:表达式中当前的cur指向的运算符

    \Theta1 > \Theta2时,说明这时候栈顶优先级符号比较大,我们要先算数据。

    \Theta1 > \Theta2时,说明栈顶符号比较小,可以之后算,先算乘除后算加减。而且 \Theta1是左括号( 时,他的优先级最小,先把后面的压进来先, \Theta1是右括号时要优先算括号中的数据,故先要用之前的符号也就是符号栈OPTR栈顶符号与数据栈中前两个运算。

     \Theta1 = \Theta2时,说明遇到了一对()或者一对#,一对括号就说明括号中间的运算结束了,把这两括号去掉即可,即pop掉符号栈OPTR栈顶的(,与cur指向下一位。一对#即可结束。

     具体实现图解:

     实现代码:

    char infix()//两个# 代表结束
    {
    	ST OPTR,OPND;
    	StackInit(&OPTR);
    	StackInit(&OPND);
    
    	char a, b,theta;
    	StackPush(&OPTR, '#');
    	char c = getchar();
    	while (c != '#' || StackTop(&OPTR) != '#')//两个同时为# 才是结束,这两个挨在一起
    	{
    		if (isdigit(c))
    		{
    			StackPush(&OPND, c);
    			c = getchar();
    		}
    		else if (!in(c))
    		{
    			printf("出现非法字符\n");
    			exit(-1);
    		}
    		else
    		{
    			switch (judge(StackTop(&OPTR),c))
    			{
    			case '>':
    				//OPTR栈顶符号大,说明前面的数要先算
    				a = StackPop(&OPND);
    				b = StackPop(&OPND);
    				theta = StackPop(&OPTR);
    				StackPush(&OPND, calculate(b, theta, a));
    				break;									//这时候c还没有用上,不用再取
    			case '=':
    				StackPop(&OPTR);
    				c = getchar();
    				break;
    			case '<':
    				//后者大,就把符号位压进来
    				StackPush(&OPTR, c);
    				c = getchar();
    				break;
    			}
    	
    		}
    	}//while
    	return StackTop(&OPND);
    }

    判断是否非法符号函数:

    bool in(char c) 
    {
    	char a[] = { '+','-','*','/','(',')','#' ,'\0'};
    	char* pa = a;
    	while (*pa != '\0')
    	{
    		if (c == *pa)
    			return true;
    		else
    			pa++;
    	}
    	return false;
    }

    比较符号优先级函数:

    char judge(char a, char b)
    {
    	if ((a == '#' && b == '#') || a == '(' && b == ')')
    		return '=';
    	else if (a == '#' || a == '(' || b == '(' ||
    		((a == '+' || a == '-') && (b == '*' || b == '/')))				//a是开括号就都要压栈
    		return '<';
    	else
    		return '>';
    }

    运算函数:

    char calculate(char a, char theta, char b)
    {
    	char temp = 0;
    	switch (theta)
    	{
    	case '+':
    		temp = (a - '0') + (b - '0') + 48;
    		break;
    	case '*':
    		temp = (a - '0') * (b - '0') + 48;
    		break;
    	case '/':
    		temp = (a - '0') / (b - '0') + 48;
    		break;
    	case '-':
    		temp = (a - '0') - (b - '0') + 48;
    		break;
    	}
    	return temp;
    }
    


  • 以下回答来自chatgpt:

    操作系统:(未提供信息) VS版本:(未提供信息) 删除方式:(未提供信息)

    对于误删源文件的问题,有以下几种解决方案:

    1. 使用版本控制工具 如果你使用Git或SVN等版本控制工具进行代码管理,你可以在工具中找回已经删除的文件。在Git中,使用git checkout命令加上被删除文件的路径,即可将其恢复。在SVN中,使用svn update命令也能找回已删除文件。

    2. 使用Windows回收站 如果你的操作系统是Windows,你可以检查回收站中是否有被删除的文件。如果有的话,只需要将其还原即可。

    3. 使用Windows的阴影副本 Windows系统有一个叫做“阴影副本”的功能,它能够在文件被删除或修改之前自动备份该文件。你可以使用命令vssadmin list shadows来列出所有系统为文件创建的阴影副本。然后使用copy命令将被删除的文件从阴影副本中恢复到原来的位置。

    4. 使用第三方恢复软件 如果以上方法都无法找回被删除的文件,你可以使用一些第三方恢复软件,如Recuva、EaseUS Data Recovery Wizard等。这些软件能够扫描你的硬盘,找回被删除文件的痕迹,并将它们恢复到指定位置。

    无论采用哪种方法,都应该在恢复文件之前先备份好当前的代码,以防在恢复过程中出现错误导致数据丢失。


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