PDA

Visualizza la versione completa : [C] problema con argv[] e apertura file


Faxus
20-02-2009, 14:32
salve, ho un problema con l'utilizzo di argv e l'apertura dei file; ho ridotto il mio errore in questo piccolo e semplice programma che a me non funziona!

-------------------------------------------------
#include <stdio.h>
#include <stdlib.h>

int main ( int argc, char *argv[] ) {
FILE* fp;

printf ("%s ", argv[1]);

fp = fopen (argv[1], "r");
if (fp == NULL) {
printf ("ERRORE in apertura di %s\n", argv[1]);
}
fclose (fp);
return 0;
}
--------------------------------------------------

compilando passo passo si pianta in fopen e restituisce NULL;

la posizione del file nn credo sia un problema perchè se provo a sostituire tutto con una scanf, il file lo trova benissimo dopo.

quindi... che cosa sto sbagliando?!?

rispondete appena potete..

grazie mille!

oregon
20-02-2009, 14:48
Deve essere invece proprio la posizione del file con cui provi.

Non ho alcun problema con il codice mostrato.

Quale IDE/compilatori usi? Come esegui il programma? Dove e' il file di cui passi il nome?

Faxus
20-02-2009, 15:27
sto usando codeblocks..

eseguo il programma dalla linea di comando del promt dei comandi.. in genere il percorso è:

f:\....\cartella_progetto\bin\debug>progetto.c file.txt

il file è salvato nella cartella del progetto;

bin\debug è la cartella dove codeblocks mi salva l'eseguibile.



la cosa strana è che..
la lettura da linea di comando con argv[] senza poi usarlo per aprire un file, mi funziona;

se non uso argv[] i file si aprono senza problemi, ad esempio dando il nome del file direttamente nella fopen;

invece se provo a usare argv[] e poi con la stringa apro il file, si pianta.


spero di aver spiegato bene cosa mi succede.

attendo notizie..

Faxus
20-02-2009, 15:29
**correzione da quello scritto sopra..


eseguo il programma dalla linea di comando .. in genere il percorso è:

f:\....\cartella_progetto\bin\debug>progetto.EXE file.txt

oregon
20-02-2009, 16:03
Il file deve essere nella cartella debug

Faxus
20-02-2009, 16:52
ebbenesì era proprio quello... strano perchè avevo provato a copiare i file un po ovunque!

cmq.. grazie tante!!!


ciao!!!

Loading