Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    156

    [C - ASCII] immissione di vocali accentate

    Sto scrivendo un programma che deve lavorare con stringhe di parole immesse da tastiera. Siccome ho a che fare con vocaboli della lingua italiana, mi domandavo se esiste un modo per immettere le vocali accentate (à è é ì ò ù) e, quindi, poter lavorare con esse.

  2. #2
    Per immetterle vengono immesse normalmente... il problema semmai sta nel visualizzarle.
    Dai un'occhiata qui.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    156
    intanto grazie!

    quindi volevo capire questo. poniamo che l'utente digiti la parola carità: il mio programma salva in un vettore questa parola e quindi deve fare delle verifiche sulle singole lettere immesse.

    se io quindi scrivo una riga di codice di questo tipo
    codice:
    if (string[cont] == 'à'){
           instructions
    }
    viene interpretata correttamente dal compilatore, o devo utilizzare il corrispettivo codice ASCII nell'istruzione?
    in realtà non mi serve stampare a video la lettera accentata, è sufficiente che la lettera accentata immessa da tastiera venga interpretata correttamente dal compilatore

  4. #4
    Se si tratta semplicemente di una cosa del genere ti conviene trovare l'equivalente nel CP OEM dei caratteri che devi confrontare. Fai così: apri il prompt dei comandi, digita
    codice:
    echo àèéìòù > temp.txt
    notepad temp.txt
    del temp.txt
    (eventualmente dopo "echo" inserisci altri caratteri che ti interessano). Nel notepad ora avrai i caratteri che nel CP OEM corrispondono ad àèéìòù, che dovrai inserire nei sorgenti del tuo programma la dove dovrai effettuare questo genere di confronti.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    156
    premetto che mi trovo su mac os 10.4.10.

    detto questo, se eseguo da terminale echo à

    la à non viene digitata, ma al suo posto mi compare la seguente stringa \303\240 .

    il comando viene eseguito lo stesso e mi ritorna come valore il carattere à!

    ora io non so se quello che intendevi era proprio la stringa che mi è comparsa, sta di fatto che ho provato ad utilizzare quella stringa in un programmino creato ad hoc, ma senza ottenere alcun risultato.

  6. #6
    Ops, io pensavo che stessi lavorando su Windows (visto che ho sempre incontrato questo problema su Windows). Allora non so come aiutarti... al limite modifica la tua applicazione perché usi i caratteri Unicode...
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    156
    Originariamente inviato da MItaly
    al limite modifica la tua applicazione perché usi i caratteri Unicode...
    e come posso fare? non saprei nemmeno da che parte iniziare.
    mi sorge però un'ulteriore domanda. come fa un qualsiasi programma che deve lavorare con vocaboli della lingua italiana a funzionare? tutti questi programmi utilizzano i caratteri unicode oppure esiste un'altra via?

  8. #8
    Se parli di applicazioni grafiche il problema normalmente non si pone: infatti in quel caso il codepage usato nei sorgenti è lo stesso usato quando l'applicazione viene eseguita. Il problema si presenta solamente nelle applicazioni console, i cui sorgenti solitamente vengono scritti con CP ANSI ma vengono eseguite con CP OEM.
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    156
    Originariamente inviato da MItaly
    Se parli di applicazioni grafiche il problema normalmente non si pone: infatti in quel caso il codepage usato nei sorgenti è lo stesso usato quando l'applicazione viene eseguita. Il problema si presenta solamente nelle applicazioni console, i cui sorgenti solitamente vengono scritti con CP ANSI ma vengono eseguite con CP OEM.
    e infatti io rientro nel caso dell'applicazione console

    questa è proprio una bella seccatura

  10. #10
    Be', per ottenere i codici di carattere delle lettere accentate nel codepage OEM puoi sempre fare così: crea un'applicazione console siffatta:
    codice:
    #include <iostream>
    using namespace std;
    int main()
    {
        char temp;
        cin>>temp;
        cout<<hex;
        cout<<(int)temp;
        return 0;
    }
    . A questo punto eseguila, inserisci il carattere di cui vuoi scoprire il numero nel CP OEM e premi Invio: magicamente apparirà il dato desiderato (in esadecimale). A questo punto nel tuo programma inserisci il carattere in questione usando la sequenza di escape '\xhh', dove hh è il codice apparso sullo schermo.
    Amaro C++, il gusto pieno dell'undefined behavior.

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.