Ciao a tutti,
anche se so di essere in ritardo mi sto avviciando al linguaggio C,
vi espengo un problema che per voi sarà semplicissimo però voglio capire perchè il codice che ho scritto non funziona come dovrebbe:
Il Problema dello script è che se inserisco 1, quando entra nel case 1 non esegue la funziona correttamente, cioè non mi richiede l'input nome e va avanti,come se la variabile fosse vuota.codice:#include <stdio.h> void Saluta(); int main() { int comando = 0; printf("Comandi Disponibili:\n"); printf("1 - Saluta\n"); printf("2 - ???\n"); printf("3 - ???\n"); printf("Inserisci il Numero del comando: "); scanf("%d", &comando); printf("Hai selezionato il comando %d\n",comando); switch(comando) { case 1: Saluta(); break; case 2: printf("NULL\n"); break; case 3: printf("NULL\n"); break; default: printf("inserito comando non valido\n"); } system("PAUSE"); return 0; } void Saluta() { char nome[20]; printf("Inserisci il tuo nome: "); gets(nome); printf("\nCiao %s\n",nome); }
Se inserisco la funziona all'eserno del case questa funziona correttamente.
Io credo che nome prede come valore l'INVIO che digito quando inserisco il comando.
Ditemi un pò voi come risolverlo, sicuramente è una cavolata ma per che sto iniziando ora non so che fare.
Preciso che utilizzo gets() e non scanf() perchè altrimenti non posso mettere spazi nella stringa.
Es. Nome "Pippo Paperino"