Curiosità in C con Visual Studio 2017

di il
5 risposte

Curiosità in C con Visual Studio 2017

Salve a tutti,

In C utilizzando Visual Studio 2017 come è possibile una volta compilato il programma far apparire correttamente le lettere accentate ??
Come sapete il compilatore non le riconosce e le converse in altri caratteri speciali..

Grazie dell'aiuto
Giovanni.

5 Risposte

  • Re: Curiosità in C con Visual Studio 2017

    La console utilizza un charset di tipo OEM (quello italiano è 850) e le funzioni standard del C non fanno una conversione automatica tra il charset del sistema operativo e quello della console, per quello si vedono caratteri "strani".
    Questo non vuol dire che non si possono vedere le accentate (o altri caratteri UNICODE), ma prima bisogna convertire i caratteri con funzioni apposite e poi inviarli in output.
  • Re: Curiosità in C con Visual Studio 2017

    Se ti riferisci alle stringhe di testo gestite in C (o C++), e se non vuoi utilizzare la codifica unicode di Windows con wchar_t, puoi utilizzare il Microsoft Windows Codepage 1252 (ANSI) usando unsigned char.
    Ad esempio In tale codifica la lettera ' è ' corrisponde al valore 232 o E8 in esadecimale.
    Se invece non ti riferisci alle stringhe di testo, ignora il mio commento.
  • Re: Curiosità in C con Visual Studio 2017

    Grazie della spiegazione.

    Se non chiedo troppo mi potreste fare un'esempio ??

    In un semplice programma che svolge operazioni, cosa devo aggiungere nei prinft affinchè nella console le mie "è" si vedano correttamente ??

    Eccovi il codice:

    #include <stdio.h>

    int main() {

    int a, b, somma, differenza, prodotto, divisione, modulo;


    printf("Inserire primo numero \n");
    scanf("%d", &a);

    printf("Inserire secondo numero \n");
    scanf("%d", &b);


    somma = a + b;
    differenza = a - b;
    prodotto = a * b;
    divisione = a / b;
    modulo = a % b;



    printf("La somma è %d\n", somma);
    printf("La differenza è %d\n", differenza);
    printf("La moltiplicazione è %d\n", prodotto);
    printf("La divisione è %d\n", divisione);
    printf("il resto della divisione è %d\n", modulo);

    return 0;

    }
  • Re: Curiosità in C con Visual Studio 2017

    Includi
    #include <locale.h>

    e nelle prime righe del main aggiungi

    setlocale(LC_ALL, "");
  • Re: Curiosità in C con Visual Studio 2017

    Grazie Mille, Funziona

    Un ultima cosa, le virgolette dopo la virgola nella parentesi LC_ALL cosa indicano ??
Devi accedere o registrarti per scrivere nel forum
5 risposte