Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di ing82
    Registrato dal
    Sep 2014
    Messaggi
    177

    [C++] Rappresentare caratteri come apice (es. esponente)

    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

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    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.

  3. #3
    Utente di HTML.it L'avatar di ing82
    Registrato dal
    Sep 2014
    Messaggi
    177
    Quote Originariamente inviata da shodan Visualizza il messaggio
    Caratteri ad apice? Intendi le lettere accentate?
    No, intendo "gli esponenti", tipo elevato ad un certo valore.
    In concreto, il problema è legato alle unità di misura, in cui ci possono essere gli esponenti, che non so come gestire.
    Grazie

  4. #4
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    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.

  5. #5
    Utente di HTML.it L'avatar di ing82
    Registrato dal
    Sep 2014
    Messaggi
    177
    Quote Originariamente inviata da shodan Visualizza il messaggio
    Dai un'occhiata qui se è quello che cerchi
    https://en.cppreference.com/w/cpp/io/manip/fixed
    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

  6. #6
    Utente di HTML.it L'avatar di ing82
    Registrato dal
    Sep 2014
    Messaggi
    177
    Aggiungo questa risposta dato che la discussione sembra ferma a quella precedente di Shodan...

  7. #7
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    The QString class provides a Unicode character string
    std::string non ha codifica unicode (a meno di non memorizzare stringhe utf8), per stringhe unicode devi usare std::wstring
    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.

  8. #8
    Utente di HTML.it L'avatar di ing82
    Registrato dal
    Sep 2014
    Messaggi
    177
    Quote Originariamente inviata da shodan Visualizza il messaggio
    std::string non ha codifica unicode (a meno di non memorizzare stringhe utf8), per stringhe unicode devi usare std::wstring
    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...

  9. #9
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    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.
    quindi dovrei sempre usare un qualche altro stratagemma...
    come del resto deve fare QString.
    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.

  10. #10
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Code points trovati.
    http://www.unicode.org/charts/PDF/U2070.pdf

    codice:
    std::wstring h = L"e\x2074\x2075";
    da e alla 45 potenza.
    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.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.