Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Ciao a tutti, dopo aver compilato il seguente programma mi escono questi due errori :
1- cannot open output file bin\Debug\2016-06-16.exe Permission denied|
2- error: ld returned 1 exit status|
Riuscireste a spiegarmi cosa significano quei due errori e come risolverli? Grazie in anticipo!
PS: Il file l'ho creato
Il programma è il seguente:
Codice sorgente - presumibilmente C++
#include <stdio.h>
#include <stdlib.h>
#define NOME "segovia.txt"
#define N 10
#include <time.h>
int main(int argc, char*argv[])
{
int i,j,Iron,Thor,tempo_rim,bomba_dis=0,tempo,k,y,bombe_attive;
char mappa[N][N];
if(argc!=2)
{
printf("errore linea di comando");
return-1;
}
FILE*fp;
fp=fopen(NOME,"r");
if(fp==NULL)
{
printf("errore apertura file");
return-2;
}
//salvo la mappa
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
fscanf(fp,"%c",&mappa[i][j]);
}
}
fclose(fp);
//estrazione numer;o casuale
sscanf(argv[1],"%d",&tempo_rim);
i=0;
j=0;
k=0;
y=0;
for(tempo=0;tempo<tempo_rim;tempo=tempo+10)
{
srand(time(NULL));
Iron=rand()%4;
Thor=rand()%4;
if(Iron==0)
{
i++;
if(mappa[i][j]=='B'){
bomba_dis++;
}
else
{
if(i>N-1||mappa[i][j]=='*')
{
i--;
}
}
printf("Time: %d Pos: I(%d,%d) ",tempo,i,j);
}
if(Iron==1)
{
i--;
if(mappa[i][j]=='B'){
bomba_dis++;
}
else
{
if(i<0||mappa[i][j]=='*')
{
i++;
}
}
printf("Time: %d Pos: I(%d,%d) ",tempo,i,j);
}
if(Iron==2)
{
j++;
if(mappa[i][j]=='B'){
bomba_dis++;
}
else
{
if(j>N-1||mappa[i][j]=='*')
{
j--;
}
}
printf("Time: %d Pos: I(%d,%d) ",tempo,i,j);
}
if(Iron==3)
{
j--;
if(mappa[i][j]=='B'){
bomba_dis++;
}
else
{
if(j<0||mappa[i][j]=='*')
{
j++;
}
}
printf("Time: %d Pos: I(%d,%d) ",tempo,i,j);
}
if(Thor==0)
{
k++;
if(mappa[k][y]=='B'){
bomba_dis++;
}
else
{
if(k>N-1||mappa[k][y]=='*')
{
k--;
}
}
printf("Time: %d Pos: T(%d,%d) ",tempo,k,y);
}
if(Thor==1)
{
k--;
if(mappa[k][y]=='B'){
bomba_dis++;
}
else
{
if(k<0||mappa[k][y]=='*')
{
k++;
}
}
printf("Time: %d Pos: T(%d,%d) ",tempo,k,y);
}
if(Thor==2)
{
y++;
if(mappa[k][y]=='B'){
bomba_dis++;
}
else
{
if(y>N-1||mappa[k][y]=='*')
{
y--;
}
}
printf("Time: %d Pos: T(%d,%d) ",tempo,k,y);
}
if(Thor==3)
{
y--;
if(mappa[k][y]=='B'){
bomba_dis++;
}
else
{
if(y<0||mappa[k][y]=='*')
{
y++;
}
}
printf("Time: %d Pos: T(%d,%d) ",tempo,k,y);
}
}
bombe_attive=0;
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
if(mappa[i][j]=='B')
{
bombe_attive++;
}
}
}
if(bombe_attive==bomba_dis)
{
printf("Missione riuscita");
}
else
{
printf("Missione fallita");
}
return0;
}
Ultima modifica effettuata da FeFeZ il 16/06/2017 alle 15:23
In secondo luogo, il problema può essere causato dal fatto che stai ancora eseguendo il file .exe e che vuoi compilarlo. Questo ovviamente genera l'errore in questione.
Vedi da task manager se il processo 2016-06-16.exe è in esecuzione e chiudilo prima di compilare.
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
Prova a cancellare la cartella debug e rigenerarla, se continua a dare problemi dai al compilatore i diritti di amministratore oppure ancora meglio cambia i permessi relativi alla radice del progetto.
A me quel tipo di errore capita proprio quando il file .exe è in uso perché in qualche modo il processo corrispondente non è stato chiuso. Passando da ctrl+alt+canc apro "Gestione attività" e uccido il processo incriminato. A quel punto tutto ricomincia a funzionare come dovrebbe.
Ultima modifica effettuata da AldoBaldo il 16/06/2017 alle 19:48
ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.