Ho risolto con una serie di if che deve "superare" il carattere inserito fino ad arrivare allo switch soltanto che ora mi è uscito un errore che non capisco proprio cosa sia.
Posto la parte di codice interessata con l'errore:
codice:
file "main.c"
#include<stdio.h>
#include"funzioni.h"
int main (void){
printf("\n\nEffettuando l'autenticaione avrai accesso a tutte le opzioni della rubrica (visualizzazione e modifica),");
printf("\nse invece non ti autentichi avrai diritto soltanto a visualizzare la rubrica senza poterla modificare.\n");
login();
return 0;
}
file "funzioni.c"
int login(){
int scelta[1], a, b='n';
printf("Scegli un azione inserendo il numero corrispondente\n");
printf("*********************************************************\n");
printf("1. Accesso con autenticazione\n");
printf("2. Accesso senza autenticazione\n");
printf("0. Uscita\n");
printf("*********************************************************\n");
scanf("%s",scelta);
if(strlen(scelta)>1)
b='s';
else if((scelta[0]<48)||(scelta[0]>57))
b='s';
else{
a=atoi(scelta);
switch (scelta){
case 0: /*Usicta dal login*/
printf("\n\nArrivederci!\n\n");
break;
case 1:/*Accesso con autenticazione*/
autenticazione();
break;
case 2:/*Accesso senza autenticazione*/
presentazione2();
menu2();
break;
default://Riaccede al login per autenticazione errata
printf("\n\nHai inserito un indice inesistente, riprova!\n\n");
login();
break;
}
}
if(b=='s'){
printf("\n\nHai inserito un indice inesistente, riprova!\n\n");
login();
}
return 0;
}
L'errore che mi riporta è il seguente:
/tmp/cceicGgu.o: In function main.c:
main.c
.text+0.23): undefined reference to 'login'
collect 2: ld return 1 exit status
Ma possibile che non c'è mai una cosa che va per il verso giusto a prima botta???