Oppure

Loading
19/05/12 12:54
popp109
Salve ragazzi spero possiate aiutarmi.

Se scrivo questo codice il compilatore assegna a pippo la stringa convertendo \x0061 con 'a'
  string pippo = "Ci\x0061o";
  cout << "risultato : " << pippo;           //  risultato : Ciao 


ma se leggo da un file il testo "Ci\x0061o", giustamente me lo interpetra come stringa.
A me serve la stessa cosa che fa il compilatore quando controlla la prima riga dell'esempio e cioè darmi la stringa definitiva convertendo i caratteri \xXXXX o \uXXXX nel carattere corrispondente.

Il compilatore che utilizzo è GCC (windows,linux).

grazie.
aaa
19/05/12 13:26
ale.gatti96
Ti leggi un carattere per volta, se incontri una '\' controlli se dopo c'è una 'x' e quattro numeri, in caso affermativo converti i numeri nel relativo carattere, altrimenti salvi la '\' e continui.

Ciao.
aaa
20/05/12 14:19
osharko
ma se magari salvassi ciò che leggi prima in una variabile? così da ritrovarti nella stessa condizione di quando lo mandi in output dalla stringa
aaa
20/05/12 21:13
ale.gatti96
Se legge da un file di testo tiene tutti i caratteri "\x0061", penso che nel suo caso la conversione la fa il compilatore.
aaa
21/05/12 11:10
osharko
mmm non è detto..
In c++ la sequenza per l'esadecimale è 0x***
se dovesse trovare \x0061 potrebbe non riconoscerlo come carattere, o peggio ancora potrebbe trasformarlo in 'a*', dove * è un dei primi simboli ascii strani (se i numeri che precedono il carattere espresso in esadecimale è diverso da 0), altrimenti se fosse proprio 0 potrebbe dare errori strani inquanto 00 fa riferimento a NULL, e molti compilatori non permettono il suo display
Ultima modifica effettuata da osharko 21/05/12 11:14
aaa
24/05/12 0:07
popp109
Postato originariamente da ale.gatti96:

Ti leggi un carattere per volta, se incontri una '\' controlli se dopo c'è una 'x' e quattro numeri, in caso affermativo converti i numeri nel relativo carattere, altrimenti salvi la '\' e continui.

Ciao.


Ho risolto in questo modo grazie.
aaa
24/05/12 11:48
ale.gatti96
Postato originariamente da popp109:
Ho risolto in questo modo grazie.


Prego.
aaa