“权限被拒绝”“Id返回1退出状态”是什么意思?

时间:2013-09-06 22:26:32

标签: c++ c

我正在上课C,我不是很擅长,所以我想问你,我该如何解决这个问题:“Id返回1退出状态”,我一直在努力很长一段时间,所以我非常感谢你的帮助。

#include <stdio.h>
#include<conio.h>
#include<windows.h>
int main()
{
  int P, N, NP=0;
  printf("Introduzca en nombre del producto:\n");
    scanf("%f", &N);
  printf("Introduzca en precio del producto:\n");
    scanf("%f", &P);
  if (P <= 1500)
        NP=P*1.11;
  else 
        NP=P*1.08;
   printf("El producto %d cuesta %d", NP, N);
   getche();
   return 0;
}

完整的错误列表是:

Permission denied

Id returned 1 exit status

14 个答案:

答案 0 :(得分:8)

它与代码没有任何关系。您的操作系统根本不允许在文件使用时修改它,因此编译(实际上,链接,ld是链接器)失败,因为编译器无法删除旧的可执行文件并放置一个新文件。要解决此问题,只需关闭运行该程序的所有现有进程。

如果这不起作用,请检查您对可执行文件所在目录的权限,或查找当前正在使用它的任何程序(某些系统允许程序锁定文件,因此没有其他程序可以修改它)。

答案 1 :(得分:2)

删除可执行(.exe)文件解决了问题。如果您多次编译代码,那么它可能无法替换旧的 .exe 文件。

答案 2 :(得分:1)

这里出了点问题:

int N;
scanf("%f", &N);

您的数据类型不匹配。

答案 3 :(得分:1)

我知道这个问题已经很好地解决了,但我想为那些被错误信息困扰的人提供另一个视角

  

“[错误] ID返回1退出状态”

所以这是:

如果您编译的C / C ++源文件没有要执行的主函数, 肯定会有一条错误消息说:

  

“[错误] ID返回1退出状态”

但有时我们只是不需要文件中的main函数, 在这种情况下,只需忽略错误消息。

答案 4 :(得分:0)

你的想法中的Alt + F2 ...当你忘记关闭时,它有时候会有所帮助...&#34;运行&#34;窗口哈哈)

答案 5 :(得分:0)

当我意外地将我的.exe文件标记为只读时发生了这种情况。当我删除它再次工作。 (IDK很多关于编程,但这发生在我身上,它可以帮助某人)

答案 6 :(得分:0)

如果您在终端中进行编译,则需要:

su
gcc file.c -o nameyouwant
./nameyouwant

答案 7 :(得分:0)

我想在papeho's回答中添加一些内容:

如果您使用的是任何防病毒软件,可能就是这个原因。 某些防病毒可能就是这里的事实,可能包括stdio.hwindows.hconio.h它预测使用此类标头可能会导致对您的PC的攻击

  

摆脱它的可能方法:

1.尝试删除现有的可执行文件。 (失败,因为它被锁定在某些东西上(可能是防病毒软件))

2.只需重命名该文件,然后重建并完成(重命名将允许为您的代码创建另一个可执行文件)。

3.如果重新启动电脑失败并从1尝试可能会解决此问题。 希望它有所帮助: - )

答案 8 :(得分:0)

我遇到了同样的错误。而且解决起来有点困难,因为该消息表明没有打开文件的权限。但是问题在于该程序仍在运行。

如果该程序仍在运行,我以为我可以在任务管理器中找到它,但是不在那儿。因此,我尝试删除该文件,但也无法删除。搜索有关我的更多信息,找到程序“ Process Explorer”。使用此程序,我可以看到我的exe文件仍在运行,但有一条消息说该程序已暂停。然后,我尝试通过Process Explorer杀死,但没有成功,因为我仍然没有权限。因此,我关闭了Process Explorer并以管理员权限打开,毕竟,我能够终止该进程并通过代码块构建和运行我的文件。

答案 9 :(得分:0)

我认为您应该将int NP=0;更改为:float NP=0;

还更改:scanf("%f",&N);和:scanf("%f",&P); 到:scanf("%d"&N);scanf("%d"&P);

并且:getche();至:getch();

希望这对您有所帮助。

答案 10 :(得分:0)

#include <iostream>
#include <conio.h>
#include <string.h>

using namespace std;
void gotoxy(short x, short y);
int main()
{
     FILE *ptrFile= fopen("E:\\ENCD_OUTPUT.html","a");
     char a[30];
     cin >> a;
     cout << a;
     gotoxy(14, 4);
     fputs(a, ptrFile);
     gotoxy(13, 6);
     fputs(a, ptrFile);
     getche();
}

答案 11 :(得分:0)

也许您忘记关闭终端窗口,只需关闭它并再次运行即可。

答案 12 :(得分:0)

以下两个对我有用:

  • 删除.exe文件,重新编译
  • 检查代码是否尚未在终端中运行(为确保这一点,只需关闭并重新打开您的 IDE/编辑器)

答案 13 :(得分:-1)

首先检查程序中是否使用了 flushall(); clrscr(); ,然后确定您会收到该错误!因为开发CPP中不允许这样做。使用 fflush(stdin); 代替它。 这个问题一定会解决!!!