|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2006
Messaggi: 2516
|
Dichiarare una stringa che contiene " in c++
ciao a tutti ho un problema stupidissimo in c++
devo dichiarare una stringa che contiene virgolette, solo che quando vado a compilare giustamente g++ mi vede il nome della stringa come se finisse con la seconda " e quindi mi da errore per farvi capire, se devo fare una stringa del genere string pippo = "ciao "scemo"" mi da errore ovviamente... la stessa cosa se faccio if(string == "ciao "scemo"") come faccio a risolvere questo piccolo inconveniente? grazie in anticipo per le risposte |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
\"
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2006
Messaggi: 2516
|
Grazie funziona
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Mar 2006
Messaggi: 2516
|
scusate il doppio post...
e se volessi invece porre una stringa come il risultato di una funzione system() come dovrei fare? |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Il risultato di una system è un int, non una stringa.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Mar 2006
Messaggi: 2516
|
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
C'è anche un articolo della MS: http://support.microsoft.com/kb/190351/en-us
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#8 | |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
![]() per Linux invece dipende se il comando cat è implementato come eseguibile o come comando built-in di bash: nel primo caso basta forkare, rimpiazzare gli standard streams con il file descriptor di una pipe (vedere dup2), e lanciare cat; normale routine di reindirizzamento degli standard streams insomma. nel secondo caso invece mi sa che bisogna forkare, reindirizzare gli streams, lanciare bash, inviare "cat\n" sulla pipe, e leggere l'output sempre dalla pipe. da notare che (credo) il secondo sistema funzioni in entrambi i casi |
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Se invece cerchi una soluzione semplice e semplicistica:
system("cat xyz > /tmp/uw8e729e9quue9"); e dopo ti leggi l'output prendendo dal file temporaneo. |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Usa la soluzione di Cionci, oppure popen (se devi solo leggere o scrivere dati interattivamente con il programma invocato), oppure (per un controllo più completo) direttamente fork+exec+il reindirizzamento di stdin/out/err su descrittori del tuo programma.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:48.





















