Domanda array di char dove uso come caratteri delle parentesi

matbas

Utente Iron
28 Luglio 2023
5
2
1
4
sono alle prime armi con Linguaggio C e sto facendo degli esercizi. sto provando delle semplici cose con gli array di carattere.
chiedo all'utente di scrivere 4 caratteri e poi li alloco in un vettore. alla fine li stampo.
Funziona se inserisco delle lettere ma se inserico ad esempio 4 parentesi quadrate / graffe 2 aperte e 2 chiuse tipo "[[]]" o "{{}}" quando stampo mi da due parentesi quadre/ graffe seguite da dei numeri tipo \254. perchè?

C:
#include <stdio.h>

int main(void)
{
    char vet[4];
    printf("enter parentheses or braces:");
  
    for(int i = 0; i < 4; i++)
    {
  
        scanf("%c", &vet[i]);
      

    }
    for(int i = 0; i < 4; i++)
    {
        printf("%c", vet[i]);
    }
  
    printf("\n");

    return 0;
}
 
Ultima modifica:
Il tuo codice funziona, ti basta aggiungere solo uno spazio prima del definitore di formato della funzione scanf affinché il flusso non rimanga sporco:

C:
scanf(" %c", &vet[i]);

Mi sembra di avertelo spiegato già poco tempo fa in un'altra discussione. Il discorso è sempre lo stesso. Quando digiti invio, sulla tastiera, rimane un carattere "\n" nel flusso di input. Nel momento in cui vai a fare acquisizioni successive di altri caratteri, la funzione scanf ti legge il carattere/i di fine linea che sono rimasti nel flusso e non acquisisce più i caratteri desiderati.