Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [C] problema assegnazione caratteri

    Salve a tutti,
    sono nuovo in questo forum e nuovo anche nel mondo della programmazione
    ho cominciato da poco a studiare per conto mio il linguaggio di programmazione C e sto provando a scrivermi dei programmini "stupidi"...
    scrivendo un programmino mi sono imbattuto in un problema con le assegnazioni delle variabili carattere:
    #include <stdio.h>
    #include <stdlib.h>

    int main()
    {
    char primo, secondo;

    printf("scegli primo carattere: ");
    scanf("%c", &primo);

    printf("scegli secondo carattere: ");
    scanf("%c", &secondo);

    printf("primo: %c \n", primo);
    printf("secondo: %c \n", secondo);

    system("PAUSE");
    }
    Da come risultato:
    scegli primo carattere: C
    scegli secondo carattere: primo: C
    secondo:

    Premere un tasto per continuare . . .
    non mi lascia scegliere il secondo carattere..
    Dove ho sbagliato???

    P.S. utilizzo Dev C++.
    Ho provato a cercare in giro ma non ho trovato nulla...

  2. #2
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Quando chiedi in input un carattere, magari digiti 'c' ma premi anche invio, per cui rimane nel buffer di lettura anche il '\n' (che corrisponde a invio), e la seconda scanf legge quello.
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
    char primo, secondo;
    
    printf("scegli primo carattere: ");
    scanf("%c", &primo);
    while(getchar()!=10)  // finchè non legge '\n' (che ha come valore 10)
        ;                         // non fa niente (ma non esce dal while)
    
    printf("scegli secondo carattere: ");
    scanf("%c", &secondo);
    
    printf("primo: %c \n", primo);
    printf("secondo: %c \n", secondo);
    
    getchar();
    }

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 © 2025 vBulletin Solutions, Inc. All rights reserved.