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

    [C] Input

    Salve volevo chiedervi se c'è un modo per controllare l'input dell'utente...
    codice:
    	int j=1;
    	do
    	{
    		printf("\n\nPannello per la gestione");
    		printf("\n\n.1 Avvio");
    		printf("\n.2 Stop");
    		printf("\n.3 Exit");
    		printf("\n\nInserire il numero dell'operazione voluta (Es 3): ");
    		scanf("%d",&i);
    		switch (i) {
    				case 1:
       					printf("avvio ");
       					break;
    				case 2:
    					printf("stop ");
       					break;
    				case 3:
    					printf("exit ");
       					break;
    				default:
       					printf("\nErrore nell'inserimento del comando.");
       					break;
                 		} 
    	}
    	while(j=1);
    Chiaramente il codice nn è finito perchè dovrebbe fare cosa, ma la domanda è... Se io inserisco invece di un intero un'altra cosa il mio programma va in loop, cosa posso fare?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    La scanf() è una int function, restituisce un intero che corrisponde ai dati correttamente letti. Nel tuo caso devi leggere un solo dato, quindi se il valore restituito dalla scanf() è diverso da 1 significa che c'è stato un errore in lettura e puoi far ripetere l'immissione:

    codice:
    while (scanf("%d", &i) != 1) {
        fprintf(stderr, "Devi immettere un intero, non una stringa. E' facile su.\n");
        while (getchar() != '\n'); /* rimozione di eventuali caratteri rimasti nel buffer fino al newline */
    }
    every day above ground is a good one

  3. #3
    Grazie mille

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.