我正在上课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
答案 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.h
,windows.h
或conio.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)
以下两个对我有用:
答案 13 :(得分:-1)
首先检查程序中是否使用了 flushall(); 或 clrscr(); ,然后确定您会收到该错误!因为开发CPP中不允许这样做。使用 fflush(stdin); 代替它。 这个问题一定会解决!!!