Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2016
    Messaggi
    12

    Riempimento vettore con controllo sull'input [C]

    Ciao a tutti,
    vi pongo una domanda... devo riempire un vettore di 6 elementi con numeri da 1 a 9 letti da tastiera ed implementare anche un controllo per scartare eventuali input non validi.
    Ovviamente ho implementato un ciclo for per inizializzare il vettore prendendo i vari input con una scanf che mi porta il valore in una variabile che sottopongo a vari controlli per scartare lettere (maiuscole e minuscole e simboli) e numeri non validi... fin qui tutto ok.
    Non riesco a scartare per� espressioni del tipo "9+9" o "9 9" ecc...
    Se infatti provo ad inserire, ad esempio, 9+9 in posizione 1 del vettore il programma inserisce 9 al primo posto e al secondo posto mi restituisce l'errore relativo al +.
    Oppure se al primo posto inserisco "9 9" il programma inserisce 9 al primo posto ed in automatico 9 al secondo, chiedendomi direttamente il terno elemento.
    come posso evitare casi simili? Qualche idea ?

    Grazie mille a tutti
    Fox_

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Dopo aver letto il numero scarta tutti i caratteri fino al ritorno a capo (ovvero '\n').
    codice:
    while(getchar()!='\n');
    In ogni caso dovresti semplicemente mettere in chiaro qual'è il formato di input corretto e segnalare un errore per qual si voglia altra cosa.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2016
    Messaggi
    12
    Ciao,
    grazie per l'idea, in fondo avevo escogitato una cosa simile... tuttavia vorrei restituire un messaggio di errore e indurre l'utente a inserire un carattere valido più che prendere il primo e scartare gli altri...
    Il formato di input comunque è int
    Fox_

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Allora esamina la stringa in input carattere per carattere e prova a convertire il valore ASCII in intero.

    Nel caso incontrassi caratteri non validi, emetti un errore.

    Ad esempio

    12727 va bene

    12+12 non va bene quando incontri il +

    e così via ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2016
    Messaggi
    12
    Ok risolto, grazie a tutti =)
    Fox_

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.