Semplicemente usi argv[1] senza alcun replace ...
Semplicemente usi argv[1] senza alcun replace ...
No MP tecnici (non rispondo nemmeno!), usa il forum.
Adesso provo
Non devi fare nulla.Originariamente inviato da kirakira93
E quindi come dovrei modificare il codice?
Sapendo che da argv[1] arriva la stringa con uno slash?
Va benissimo già così.
Il doppio backslash si usa solo nelle costanti all'interno del codice sorgente perchè altrimenti il compilatore fa confusione... tutto quello che non è nel codice sorgente, va benissimo senza alcuna modifica.
Però queste cose si studiano sui libri... sono fondamentali.
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
Grazie ma quindi: se la stringa è all'interno di un vettore lo slash è accettato e se la stringa è un array static allora ci vuole il doppio? giusto?
NO.Originariamente inviato da kirakira93
Grazie ma quindi: se la stringa è all'interno di un vettore lo slash è accettato e se la stringa è un array static allora ci vuole il doppio? giusto?
La cosa migliore è che tu ti studi il quoting dei caratteri.
Il carattere di backslash è un carattere speciale e serve a quotare altri caratteri speciali. Esempio, se tu vuoi mettere le virgolette all'interno di una stringa, che fai?
Perchè? Perchè se dopo la parola "mia" metti semplicemente le virgolette, come fa il compilatore a capire che tu non vuoi chiudere la stringa ma vuoi inserire il carattere "virgolette" all'interno della stringa? Non può, devi usare il backslash per quotare il carattere "virgolette".codice:char *str = "mia \"stringa\"";
Stessa cosa per il backslash stesso: è un carattere speciale e come tale va quotato perchè il compilatore non sa cosa vuoi fare.
Questo solo nei sorgenti, ovunque tu abbia dei caratteri speciali. (virgolette, backslash, caratteri di acapo, ecc).
Ovviamente se l'informazione ti arriva da fuori (e non dal sorgente) i problemi non sussistono.
Fai una prova di questo tipo:
Chiama il programma "pippo", compilalo e richiamalo da riga di comando così:codice:int main(int argc, char **argv) { cout << "C:\\Pippo" << endl; cout << argv[1] << endl; }
Vedrai che non c'è differenza fra le due stringhe.codice:C:> pippo C:\Pippo
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
Grazie mille ora ho capito... grazie ancora!