Buonasera a tutti.
Stavo testando un progetto piuttosto complesso che devo inviare, per cui facevo vari tentativi anche per controllarne la portabilità, e mi si è presentato un problema, la cui causa è al di fuori della mia esperienza, di studente. Quello che mi è successo è che facendo il Debug dall'IDE (Utilizzo Codebloks) tutto ok, avviando l'esecuzione dall'IDE.. tutto ok, poi se invece provo ad aprire direttamente il file eseguibile generato dalla compilazione del codice, qualcosa non va a buon fine.. E non va a buon fine l'apertura di un file.txt, che è come se non mi trovasse in quanto verifico che la fopen ritorna NULL.
Ho cercato di scrivere un breve codice in cui si presente la stessa situazione (main.c) all'interno di un progetto chiamato "prova" e nella stessa cartella ho messo un file data.txt il cui contenuto è "CIAO!"
main.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
FILE *file;
char *string=malloc(sizeof(char)*30);
char c;
file=fopen("data.txt","r");
c=fgetc(file);
sprintf(string, "%c", c);
while ((c=fgetc(file)) != EOF)
sprintf(string, "%s%c", string,c);
printf("CONTENUTO FILE: %s\n",string);
system("PAUSE");
return 0;
}
L'esecuzione di questo piccolo codice mi ritorna "CONTENUTO FILE: CIAO!", mentre se apro l'eseguibile prova.exe ottengo "CONTENUTO FILE: ".
La mia domanda è.. come mai accade questo nonostante il file di testo sia all'interno della stessa cartella del progetto? Per questo motivo ho creduto non possa essere il percorso del file il problema, ma non so. Chiedo aiuto a voi, più esperti.
Grazie!