Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    16

    [C/C++] Lettere accentate

    Salve.
    Ho un ambiguità con C/C++: le lettere accentate vengono sostituite da simboli strambi.
    Premetto che sono appena all'inizio di C quindi non iniziate a parlare come robot XD.

    N.B: sono all'inizio di C/C++ ma me ne intendo di pascal, php, html, css, javascript, vb.net quindi non è che non sappia nulla.

    Ho trovato alcuni risultati su tale forum ma non riesco a capire. Qualcuno di buon cuore che me lo spieghi accuratamente?

    P.S: So che ho l'alternativa di scrivere e' con l'apostrofo, ma se non volessi usarla questa alternativa e mi ostinassi a voler usare è à ù ì ò ?
    Grazie mille in anticipo.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,461
    In quale contesto hai il problema?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    16
    Quote Originariamente inviata da oregon Visualizza il messaggio
    In quale contesto hai il problema?
    Semplicemente anche qui:

    codice:
    #include <stdio.h>
    int main(void){
    printf(" Più già dì però piè \n"); 
    system("pause");       	
    return 0;
    }

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,461
    Cioè in una finestra DOS?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    16
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Cioè in una finestra DOS?
    Esattamente. Console Application.

    Screen: http://gyazo.com/237e213a8fe481fa8beddb4e35e90d51

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,461
    La console di Windows utilizza una code page OEM, devi quindi convertire questi caratteri (che non sono standard ASCII) prima di visualizzarli ... ad esempio

    codice:
    #include <windows.h>
    e quindi

    codice:
        char stringa[] = " Più già dì però piè \n";
    
    
        CharToOemBuffA(stringa, stringa, sizeof(stringa)); 
    
    
        printf("%s", stringa);
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    16
    Quote Originariamente inviata da oregon Visualizza il messaggio
    La console di Windows utilizza una code page OEM, devi quindi convertire questi caratteri (che non sono standard ASCII) prima di visualizzarli ... ad esempio

    codice:
    #include <windows.h>
    e quindi

    codice:
        char stringa[] = " Più già dì però piè \n";
    
    
        CharToOemBuffA(stringa, stringa, sizeof(stringa)); 
    
    
        printf("%s", stringa);
    TI RINGRAZIO! Funziona!

    Domanda 1:
    Per ogni stringa è necessario far questo?

    Domanda 2:
    Potresti dirmi perchè la variabile "stringa" viene ripetuta tre volte qui:

    codice:
    CharToOemBuffA(stringa, stringa,sizeof(stringa));
    Grazie!

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,461
    1) Per ogni stringa per cui tu pensi possa servire ...

    2) Perché la funzione CharToOemBuffA, la cui documentazione è in

    http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

    prevede la stringa di input, quella di output e la lunghezza (ottenuta con la sizeof in questo caso).

    Ma se hai di questi dubbi è solo perché ancora stai veramente iniziando con il linguaggio ... più avanti ti sembrerà più semplice.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    16
    Grazie mille! PROBLEMA RISOLTO!

  10. #10
    In realtà in teoria si dovrebbero usare (almeno su Windows) caratteri e stringhe wide (wchar_t al posto di char) e funzioni corrispondenti (wprintf, ...), dovrebbe pensarci la console per i fatti suoi a convertire i caratteri in maniera appropriata; in pratica la questione è leggermente più complicata.
    Amaro C++, il gusto pieno dell'undefined behavior.

Tag per questa discussione

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.