tookie
08-05-2009, 16:04
ciao a tutti,
volevo sapere se qualcuno può indicarmi un modo per usare il costrutto switch-case, con stringhe o char
#include <stdio.h>
int main(int argc,char** argv[]){
switch ( argv[1]) {
case 'r':
printf("reverse!\n");
break;
case 'l':
printf("limited!\n");
break;
default:
printf("normal!\n");
break;
}
}
in questo semplice programma ho provato a farlo andare passandogli da riga di comando argv[1](il main devo lasciarlo cosi perchè devo unire questo segmento di codice ad un altro programma che necessita di quei parametri), e da quel che so argv è un array di argomenti lungo argc, letti come char, perciò dato che switch dovrebbe funzionare con quasi tutti i tipi numerici e char non capisco perchè mi ritorni
prgramma_semplice.c:5: error: switch quantity not an integer
ho cercato un pò in rete ma nessuna soluzione ha funzionato, e in alcuni casi queste hanno creato maggiori guai...ho provato anche ad assegnare ad una variabile char x il valore di argv[1] ma niente
volevo sapere se qualcuno può indicarmi un modo per usare il costrutto switch-case, con stringhe o char
#include <stdio.h>
int main(int argc,char** argv[]){
switch ( argv[1]) {
case 'r':
printf("reverse!\n");
break;
case 'l':
printf("limited!\n");
break;
default:
printf("normal!\n");
break;
}
}
in questo semplice programma ho provato a farlo andare passandogli da riga di comando argv[1](il main devo lasciarlo cosi perchè devo unire questo segmento di codice ad un altro programma che necessita di quei parametri), e da quel che so argv è un array di argomenti lungo argc, letti come char, perciò dato che switch dovrebbe funzionare con quasi tutti i tipi numerici e char non capisco perchè mi ritorni
prgramma_semplice.c:5: error: switch quantity not an integer
ho cercato un pò in rete ma nessuna soluzione ha funzionato, e in alcuni casi queste hanno creato maggiori guai...ho provato anche ad assegnare ad una variabile char x il valore di argv[1] ma niente