[C] Problema nell'acquisizione da tastiera del nome di un file nel cmd Windows ma non nell'IDE
Buon pomeriggio a tutti, sono nuovo del forum, scrivo perché ho un problema alquanto bizzarro: lo stesso codice eseguito produce risultati differenti. Il problema è che ciò avviene sulla stessa macchina
. Sicuramente ho sbagliato qualcosa io. Uso Windows 8.1. Descrivo meglio il problema: ho scritto un codice che acquisisce da tastiera il nome del file che voglio aprire nel mio programma; se eseguo il programma con il software che uso per scrivere il codice (Code::Blocks) tutto funziona, mentre se lo eseguo da linea di comando con il cmd di Windows il puntatore del file non riesce ad essere collegato ad esso e ritorna l'errore di controllo che ho inserito nel codice (quindi il puntatore vale NULL). È un errore noto e/o risolvibile così "su due piedi"? Se da questa descrizione riuscite a cogliere già qualche problema o qualcosa di non chiaro e/o nel caso non avessi specificato qualcosa indicatemelo! Se necessario posto il codice c. Mi scuso in anticipo se fosse qualcosa di banale


Risposte
Mostra il codice. Credo possa semplicemente essere un problema di path del file. Sei sicuro di aver lanciato il programma dalla cartella corretta?
Ecco il codice:
Lo sapevo
come al solito credi si aprire un thread interessante e utile in futuro e ti accorgi dell'errore da solo dopo il consiglio di un solo messaggio in risposta.. dannazzione a me, vado a nascondermi...
P.s. Per i niubbi come me il problema e' che di default l'IDE che uso (citato sopra) ha una feature che permette di aprire i file dal path del file progetto. Io sbadatamente non ho pensato che effettivamente avesse più senso il fatto che in genereale il file deve essere nello stesso percorso dell'eseguibile.
Grazie apatriarca

P.p.s. per i più esperti di me del forum: spero di aver usato i tag giusti per il codice. Siccome il problema e' risolto devo per caso segnalarlo in qualche modo in questa pagina dei messaggi?
#include <stdio.h> #include <stdlib.h> #include <string.h> #define N 150 #define M 20 int main() { char nome_file[N],citta[M+1],stazione_p[M+1],ora_p[M+1],stazione_a[M+1],ora_a[M+1]; int n_treni_a=0,n_treni_p=0; FILE *fp; printf("Inserisci il nome del file: "); gets(nome_file); fp=fopen(nome_file,"r"); if(fp==NULL) { printf("Errore nell'apertura del file."); exit(1); } printf("Inserisci il nome di una citta': "); gets(citta); while(fscanf(fp,"%s %s %s %s",stazione_p,ora_p,stazione_a,ora_a)!=EOF) { if(!strcmp(stazione_a,citta)) n_treni_a++; if(!strcmp(stazione_p,citta)) n_treni_p++; } fclose(fp); printf("\nNella citta' di %s ci sono %d treni in arrivo e %d in partenza.\n",citta,n_treni_a,n_treni_p); return 0; }
Lo sapevo



P.s. Per i niubbi come me il problema e' che di default l'IDE che uso (citato sopra) ha una feature che permette di aprire i file dal path del file progetto. Io sbadatamente non ho pensato che effettivamente avesse più senso il fatto che in genereale il file deve essere nello stesso percorso dell'eseguibile.
Grazie apatriarca


P.p.s. per i più esperti di me del forum: spero di aver usato i tag giusti per il codice. Siccome il problema e' risolto devo per caso segnalarlo in qualche modo in questa pagina dei messaggi?