Aprire un file in un programma C

mercoledì 12 gennaio 2005 - 23.58

janus Profilo | Newbie

Premetto che sono un novello della programmazione, pertanto vi chiedo pazienza per la banalità della domanda.
Sto scrivendo un'applicazione a console in ANSI C che deve eseguire delle operazioni sui dati letti da un generico file .dat. Per fare ciò uso fopen(...) per aprire il file e fscanf(...) in un ciclo for per leggere i dati. Il problema consiste nel fatto che sono costretto a specificare a priori il percorso e il nome del file, invece vorrei consentire all'utente di specificare un generico percorso per aprire e salvare il file. Ho provato a mettere in una stringa il percorso del file (digitato dalla linea di comando) , ad esempio nella stringa "nmfile", e provare a sostituire "nmfile" in fopen, ma non funziona, il file non viene letto. Inoltre non vengono letti i file che si trovano all'interno delle cartelle.
Avete consigli?
Ciao
janus

Brainkiller Profilo | Guru

Li conosci i parametri argv e argc del Main ?

argv è un vettore di stringhe che contiene i parametri forniti nella linea di comando l'argc invece è un int che contiene il numero dei parametri della linea di comando.

Esempio:

comando.exe c:\alfabeta.dat pippo

argv conterrà i seguenti valori:

argv[0]='comando.exe' //Di solito quello a indice 0 è il nome del programma
argv[1]='c:\alfabeta.dat'
argv[2]='pippo'

mentre argc avrà un valore di 3.

E' sufficiente che a fopen passi argv[1] e così ti apre il file.

ciao
david

janus Profilo | Newbie

Ciao David. Mi faccio sentire un po' in ritardo, sai gli esami...
Conosco argc e argv, ma mi serviva l'uso di un menu', e con quei parametri non funziona; ad esempio argc era sempre uguale a 1. Ad ogni modo ho risolto nel seguente modo:

scanf("%s",&nmfilec);
strcat(nmfilec,".dat");

if ((datc=fopen(nmfilec,"r"))==NULL)
{
printf("\nImpossibile aprire il file.");
getch();
break;
}

Ciao
janus
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5