4

我正在上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
4

14 回答 14

10

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

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

于 2013-09-06T22:59:09.733 回答
2

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

于 2021-01-06T17:24:39.367 回答
1

这里有问题:

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

您的数据类型不匹配。

于 2013-09-06T22:27:44.757 回答
1

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

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

所以这里是:

如果你编译一个没有 main 函数执行的 C/C++ 源文件,肯定会有一个 bug 信息说:

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

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

于 2016-03-24T02:12:10.907 回答
0

Alt+F2 在你的想法中......当你忘记关闭“运行”窗口时它有时真的很有帮助哈)

于 2015-01-22T21:27:02.697 回答
0

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

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

摆脱它的可能方法:

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

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

3.如果重启电脑失败并从 1 开始尝试可能会解决此问题。希望能帮助到你 :-)

于 2018-02-24T21:47:02.010 回答
0

我认为您应该简单地更改int NP=0;为:float NP=0;

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

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

我希望这可以帮助你。

于 2019-09-01T09:45:46.683 回答
0

当我不小心将我的 .exe 文件标记为只读时,这发生在我身上。当我删除它时,它再次起作用。(IDK 很多关于编程,但这发生在我身上,也许它对某人有帮助)

于 2016-10-30T12:17:05.527 回答
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();
}
于 2020-04-19T12:03:26.850 回答
0

以下两个对我有用:

  • 删除.exe文件,重新编译
  • 检查代码是否尚未在终端中运行(为确保这一点,只需关闭并重新打开您的 IDE/编辑器)
于 2021-03-10T15:00:44.253 回答
0

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

su
gcc file.c -o nameyouwant
./nameyouwant
于 2017-01-06T15:26:20.007 回答
0

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

于 2020-09-20T20:51:37.767 回答
0

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

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

于 2019-06-08T16:17:16.493 回答
-1

首先检查您是否使用flushall(); clrscr(); 在你的程序中,如果它在那里,那么你肯定会得到那个错误!!!因为在 Dev CPP 中是不允许的。使用fflush(stdin); 而不是它。问题一定会解决的!!!

于 2019-10-01T06:27:06.620 回答