In C++, tramite le std::string, è possibile rappresentare i caratteri ad apice?
Se no, come mi pare di aver capito, come si può ovviare al problema?
Grazie
In C++, tramite le std::string, è possibile rappresentare i caratteri ad apice?
Se no, come mi pare di aver capito, come si può ovviare al problema?
Grazie
Caratteri ad apice? Intendi le lettere accentate?
This code and information is provided "as is" without warranty of any kind, either expressed
or implied, including but not limited to the implied warranties of merchantability and/or
fitness for a particular purpose.
Dai un'occhiata qui se è quello che cerchi
https://en.cppreference.com/w/cpp/io/manip/fixed
This code and information is provided "as is" without warranty of any kind, either expressed
or implied, including but not limited to the implied warranties of merchantability and/or
fitness for a particular purpose.
Quanto presente nel link, dovrebbe essere riferito ai numeri e alla loro possibile rappresentazione, ma non è questo il problema.
Il problema è legato alle unità di misura, che per certe grandezze fisiche prevedono esponenti (ad esempio i metri quadri per l'area, i metri cubi per il volume, i metri alla quarta per i momenti di inerzia, ecc.).
Più ci penso e cerco, più mi convinco che probabilmente dovrò accontentarmi di memorizzare la stringa senza la formattazione (quindi m piuttosto che m²), dato che non è possibile con le std::string, e nel momento della loro visualizzazione a video, fare in modo che venga formattata in quel modo.
Ad esempio, per l'area, unità di misura cm².
Potrei tranquillamente memorizzare semplicemente cm, tanto nessuno "vede" se manca o meno l'esponente 2, ma quando vado a visualizzarla a video, la visualizzo formattata.
Usando Qt, questo passaggio è possibile impiegando le QString al posto delle std::string.
Stessa cosa al momento di scrivere in un file rtf, devo avere un qualcosa che presa l'unità di misura, gli aggiunga l'esponente e lo scrive sul file rtf.
Da quello che ho letto in giro, mi pare che questa possa essere la strada.
Altre idee?
Grazie
Aggiungo questa risposta dato che la discussione sembra ferma a quella precedente di Shodan...
std::string non ha codifica unicode (a meno di non memorizzare stringhe utf8), per stringhe unicode devi usare std::wstringThe QString class provides a Unicode character string
This code and information is provided "as is" without warranty of any kind, either expressed
or implied, including but not limited to the implied warranties of merchantability and/or
fitness for a particular purpose.
Ma anche se dovessi usare una di queste codifiche, il carattere il carattere che rappresenta "elevato alla quarta" non c'è, o almeno, io non lo ho trovato (ci sono "elevato al quadrato" e "elevato al cubo"), quindi dovrei sempre usare un qualche altro stratagemma...
Se è per quello, nemmeno elevato alla 129esima c'è, ma non è quello il punto. Il punto è che std::string è pensata per essere usata su 128 code points (in realtà 256 se intesa come buffer di char), mentre std::wstring può essere usata (potenzialmente) per 65536 code points.
come del resto deve fare QString.quindi dovrei sempre usare un qualche altro stratagemma...
This code and information is provided "as is" without warranty of any kind, either expressed
or implied, including but not limited to the implied warranties of merchantability and/or
fitness for a particular purpose.
Code points trovati.
http://www.unicode.org/charts/PDF/U2070.pdf
da e alla 45 potenza.codice:std::wstring h = L"e\x2074\x2075";
This code and information is provided "as is" without warranty of any kind, either expressed
or implied, including but not limited to the implied warranties of merchantability and/or
fitness for a particular purpose.