Leggere da tastiera stringa

di il
3 risposte

Leggere da tastiera stringa

Salve, voglio leggere da tastiera una stringa leggendo un carattere alla volta quindi ho pensato di utilizzare questo algoritmo, che però mi fa inserire massimo 5 elementi nonostante abbia inserito con il define la dimensione del vettore di stringhe uguale a 10. Come posso risolvere? Grazie.

#include <stdio.h>
#include <stdlib.h>
#define DIM 10

int main(){
    
char STRINGA[DIM];
    int i = 0;
    printf("Inserisci i caratteri: \n");
    while (i<DIM){
        scanf("%c",&STRINGA[i]);
        i = i+1;
    }
}

3 Risposte

  • Re: Leggere da tastiera stringa

    Se devi accettare singoli caratteri non usare la scanf ma la getchar
  • Re: Leggere da tastiera stringa

    Ho sostituito la scanf con getchar come segue, ma continua a darmi lo stesso problema, ovvero mi scansiona massimo 5 caratteri.
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define DIM 10
    
    int main()
    {
        char STRINGA[DIM];
        int i = 0;
        printf("Inserisci carattere: \n");
        while (i<DIM){
            STRINGA[i]=getchar();
            i = i+1;
        }
    }
  • Re: Leggere da tastiera stringa

    Perché per ogni carattere inserito devi premere anche il return.

    Se vuoi usare una funzione che accetti un carattere senza attendere il return allora devi usare qualcosa di "non" standard come

    if (_kbhit()) STRINGA =_getch();
Devi accedere o registrarti per scrivere nel forum
3 risposte