Oppure

Loading
10/08/09 15:38
hack3r
allora io ho questo pezzo di codice :

int main(int argc, char* argv[]) {
	
	if(argc!=2) std::cerr << "\n*** DEVI SPECIFICARE UN FILE SORGENTE ***\n\n"; std::exit(1);
	std::ifstream sourceFile(argv[1], std::ios::in);

	if(!sourceFile) std::cerr << "\n*** FILE INESISTENTE ***\n"; std::exit(1);

        cout << "file aperto";



il programma dovrebbe quindi prendere come argomento il nome di un file e aprirlo, ma
dando dalla shell il comando :

./programma miofile.txt

non succede nulla :-|

come mai ?

vi ringrazio tutti anticipatamente :)

EDIT : CHIUDETE IL POST DOPO UN POMERIGGIO CHE CI SBATTEVO LA TESTA SOPRA HO RISOLTO SUBITO DOPO AVER POSTATO LA RICHIESTA D' AIUTO, VI CHIEDO PERDONO :hail:
Ultima modifica effettuata da hack3r 10/08/09 15:42
aaa
11/08/09 13:37
Cesco90
Posta la soluzione potrebbe servire ad altri!!!
aaa
12/08/09 10:49
hack3r
semplicemente gcc (4.3.4) mi valutava lo std::exit(1) del primo if fuori dal blocco, lo so che è strano ma è così, in questo modo ad ogni apertura del file il programma terminava con stato di uscita ! :-|
aaa
12/08/09 23:36
TheKaneB
beh... hai messo una riga di codice seguita da un punto e virgola ; dopo l'istruzione "if" quindi è normale che venga considerata l'exit fuori dal blocco condizionale....


quando si è in dubbio, è sempre meglio usare le parentesi, anche quando si scrive un blocco condizionale di una singola riga di codice.
Ultima modifica effettuata da TheKaneB 12/08/09 23:37
aaa
13/08/09 8:33
hack3r
la maggior parte dei problemi del codice sono così ovvi che non si riescono a vedere :asd:
aaa
13/08/09 23:21
TheKaneB
diciamo che si è trattato di un "errore di gioventù"? eheh ^_^

buono studio e buon divertimento (soprattutto!) ;)
aaa