Visualizzazione dei risultati da 1 a 2 su 2

Discussione: [c]switch_case

  1. #1

    [c]switch_case

    mi trovo davanti a questo errore..
    inizializzazione di 't' ignorata da un'etichetta 'case'

    inizializzazione di numposti ignorata da un etichetta 'case'
    sono entrambi variabili usate nel case 2...

    ecco il codice..


    //visualizzare la mappa
    codice:
    	case '1': 
    					recv(conn,buffer,sizeof(buffer),0);
    						char postidainv[dim1*dim2];
    						matrixtoposti(postidainv);
    						send(conn,postidainv,dim1*dim2,0);
    						send(conn,"\n",strlen(buffer),0);
    				caricamappa();
    		break;
    
    
    			//prenotare i posti
    
    		case '2':	
    			recv(conn,buffer,sizeof(buffer),0);
    			int t=0;
    			char risp[7];
    			int numposti=(int) buffer[1];
    			
    			
    			int s;
    			
    			while(t<numposti)
    			{
    				
    					s=occupaposto((buffer[2]),(buffer[3]));
    					risp[5]=buffer[2];
    					risp[6]=buffer[3];
    					if(s==-2)
    					{
    						//posto non disponibile
    							risp[0]='Y';
    							risp[1]='Y';
    							risp[2]='Y';
    							risp[3]='Y';
    					}
    					else 
    						if(s==-1)
    						{
    								//posto è occupato
    							risp[0]='E';
    							risp[1]='E';
    							risp[2]='E';
    							risp[3]='E';
    						}
    						else
    						{
    								//posto libero
    							errore=sprintf(risp,"%d",s);
    							if(errore<0)
    							{
    								if(WSAGetLastError()==WSAEINTR)
    								{
    										SendMessage(HWND_BROADCAST,my_mex_type,0,0);
    										exit(-1);
    								}
    							}
    						}
    						send(conn,risp,7,0);
    						t++;
    			} //chiude il while
    
    
    				send(conn,"\n",strlen(buffer),0);
    				caricamappa();
    		break;
    
    
    			//disdire i posti
    
    		case '3':
    		if(priorita==0 || priorita ==2)
    		{
    			if(buffer[1]=='C')
    			{
    					int cod;
    					char codice[4];
    					if(recv(conn,codice,sizeof(codice),0)<0)
    					{
    							printf("impossibile leggere il messaggio");
    							if(WSAGetLastError()==WSAEINTR)
    							{
    									SendMessage(HWND_BROADCAST,my_mex_type,0,0);
    										exit(-1);
    							}
    					}
    					sscanf(codice,"%d",&cod);
    					char postodadisdire[2];
    					if(recv(conn,postodadisdire,sizeof(postodadisdire),0)<0)
    					{
    							if(WSAGetLastError()==WSAEINTR)
    							{
    									SendMessage(HWND_BROADCAST,my_mex_type,0,0);
    										exit(-1);
    							}
    					}
    					int s=liberaposto(cod,(postodadisdire[0])-1,(postodadisdire[1])-1);
    					char risp[2];
    					if(s==1)
    					{
    							risp[0]='1';   //1 indica prenotazione disdetta
    							risp[1]='1';
    							send(conn,risp,sizeof(risp),0);
    					}
    					else
    					{
    							risp[0]='E'; //con E indico che è occupato
    							risp[1]='E'; 
    					}
    
    					send(conn,"\n",strlen(buffer),0);
    			}
    		}
    			else 
    				{
    					send(conn,"r",MAX,0);
    					goto k;
    					break;
    				}
    			salvamappa();
    			salvacodici();
    		break;
    
    		default: break;
    sapete dirmi il xke ???

  2. #2
    ho risolto mettendo le parentesi { } ad ogni case..

    e chiudo prima del break;

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 © 2025 vBulletin Solutions, Inc. All rights reserved.