PDA

Visualizza la versione completa : [C]Warning multi-character character constant


Guitar_joker87
06-06-2007, 15:01
#include <stdio.h>
#include <stdlib.h>

int main(){
int i=0;
unsigned int a;
unsigned int b;
unsigned char v[86];
FILE *pfile;
pfile=fopen("byte.txt","r");
while(!feof(pfile)&&(i<86)){
fscanf (pfile, "%08X", &a);
v[i]=a;
printf("%02x\n",v[i]);
i++;
int fclose (FILE *pfile);
}
if (v[0] == 0x66){
b=v[1]&240;
printf("%x",b);
switch(b) {
case '0x40':
printf("op1\n");
break;
case '0xf0':
printf("op2\n");
break;
case '0xb0':
printf("op3\n");
break;
case '0x30':
printf("op4\n");
break;
}}
system ("pause");
}

Questo prog mette dati da un file ad un vettore, mi da la suddetta warning sulle condizioni dello switch e il programma non fa niente a parte stampare il vettore... cosa devo fare?

Xaratroom
06-06-2007, 15:09
usa i tag code (#) per postare del codice...
case '0x40': è errato, devi fare case 0x40 e non '0x40' perchè '0x40' non è un carattere ma una stringa e tu la vuoi "intendere" come numero credo (idem per tutti gli altri case)...


#include <stdio.h>
#include <stdlib.h>

int main()
{
int i=0;
unsigned int a;
unsigned int b;
unsigned char v[86];
FILE *pfile;
pfile=fopen("byte.txt","r");
while(!feof(pfile)&&(i<86)){
fscanf (pfile, "%08X", &a);
v[i]=a;
printf("%02x\n",v[i]);
i++;
int fclose (FILE *pfile);
}
if (v[0] == 0x66){
b=v[1]&240;
printf("%x",b);
switch(b) {
case 0x40:
printf("op1\n");
break;
case 0xf0:
printf("op2\n");
break;
case 0xb0:
printf("op3\n");
break;
case 0x30:
printf("op4\n");
break;
}}
system ("pause");

Guitar_joker87
06-06-2007, 15:13
!!!!!!!!!!

grazie mille scuse per l'errore...

Xaratroom
06-06-2007, 15:17
figurati
:ciauz:

Loading