注册 登录
编程论坛 C++教室

原来编译可以执行通过的程序第二次出错了

gaohao12 发布于 2008-11-04 20:40, 1142 次点击
原来编译可以执行通过的程序第二次出错了,
错误提示:LINK : fatal error LNK1168: cannot open Debug/t1.exe for writing
执行 link.exe 时出错.

首先说明我这个程序原来是可以通过执行的附程序:
#include<iostream.h>
void main()
{
    float a,b;
    cout<<"请输入实数a:"<<'\n';
    cin>>a;
    if(a<50) b=5.0;
    else if(a<100) b=10.0;
    else if(a<150) b=15.0;
    else b=20;
    cout<<"b="<<b<<endl;
}
但是当我使用说明符号/*...*/将这个程序设为说明,接着在这个程序下面输入新的程序:
加密程序,将明文的字母变成其后的第四个字母,字母表首尾相连,输入“#”时,程序结束
#include <iostream.h>
void main(void)
{
    char c;
    cout<<"输入明文:";
    cin.get(c);
    while(c!='\n'){
        if(c>=65&&c<=90||c>=97&&c<=122)//大写字母A~Z为65~90,小写字母a~z为97~122
        {
        switch(c){
        case 'W':
        case 'X':
        case 'Y':

        case 'Z':
        case 'w':
        case 'x':
        case 'y':
        case 'z': c-=22;break;
        default:c+=4;
        }
        }
        else c+=0;
        cout<<c;
        cin.get(c);
    }

}
编译链接就会出现上面的错误提示:LINK : fatal error LNK1168: cannot open Debug/t1.exe for writing
执行 link.exe 时出错.
我把第二个程序删除了,继续运行第一个程序,还是会出现上面的错误提示,请问这个怎么解决,谢谢
补充下,我用的环境是VC6.0的

[[it] 本帖最后由 gaohao12 于 2008-11-4 21:01 编辑 [/it]]
7 回复
#2
debroa7232008-11-05 01:45
如果没猜错的话,看看进程管理器中,是不是t1.exe进程还存在,关掉它就可以了.
#3
tls4113232008-11-05 09:41
#4
gaohao122008-11-05 17:03
回复 2# 的帖子
呵呵,电脑重启再运行就不会出现那个错误了,
不过很奇怪,即使进程里没关掉.EXE文件,也不该出现那个问题啊
#5
debroa7232008-11-05 21:43
t1.exe在进程是由于前一次运行之后没有退出,之后在调试时,由于t1处于运行状态,编译器无法对其进行读写操作,也就无法把新编译的二进制写入到文件t1.exe中去,造成cannot open Debug/t1.exe for writing的错误。
#6
gaohao122008-11-06 09:54
回复 5# 的帖子
深入理解了,多谢多谢
#7
LJCX2008-11-06 19:22
多谢指点,我也遇到过同样的问题!
#8
藏龙12008-11-06 21:31
深有同感啊 我也多次遇到此问题
1