ecco il codice di leggiposti .. riguardo la documentazione di scanf ora cerco su google grazie cmq dell'appunto
codice:void leggiposti(int numposti,SOCKET conn) // permette di prenotare uno o più posti { char buffer[1000]; buffer[0]=2; buffer[1]=(char) numposti; int t=0; while(t<numposti) { int q=0; char posto[TEXT_LENGTH]; puts("\ninserisci numero della fila"); while(q<=0 || q>127) { errore=scanf("%s",posto); if(errore<0) { if(WSAGetLastError()==WSAEINTR) { printf("Errore nella scanf"); SendMessage(HWND_BROADCAST,my_mex_type,0,0); exit(-1);// uscita } } if(verificastringa(posto)!=-1) { q=atoi(posto); // converte stringa in intero } else q=-1; if(q<=0 || q>127) puts("\n\nErrore:numero fila inserito non valido.inserisci il numero fila"); } // chiusura del while buffer[2+(t*2)]=(char)q; puts("\ninserisci il numero del posto"); q=0; while( q<=0 || q>127) { errore=scanf("%s",posto); if(errore<0) { if(WSAGetLastError()==WSAEINTR) { printf("Errore nella scanf"); SendMessage(HWND_BROADCAST,my_mex_type,0,0); exit(-1);// uscita } } if(verificastringa(posto)!=-1) { q=atoi(posto); } else q=-1; if(q<=0||q>127) puts("\n\nErrore:numero posto inserito non valido.inserisci il numero di posto"); } buffer[2+(t*2)+1]=(char)q; ++t; } // chiudo while controllo su t if(conn<0) printf("impossibile connettersi \n"); int errore=send(conn,buffer,(numposti*2)+2,0); if (errore<0) { if(WSAGetLastError()==WSAEINTR) { printf("errore nella send"); SendMessage(HWND_BROADCAST,my_mex_type,0,0); exit(-1);// uscita } } char risp[7]; int q=0; while(q<numposti) { errore=recv(conn,risp,sizeof(risp),0); if(errore<0) { if(WSAGetLastError()==WSAEINTR) { printf("errore nella recv"); SendMessage(HWND_BROADCAST,my_mex_type,0,0); exit(-1);// uscita } } if(risp[0]=='E') { errore=printf("\nil posto %d,%d è occupato\n", risp[5],risp[6]); if(errore<0) { if(WSAGetLastError()==WSAEINTR) { printf("errore nella printf"); SendMessage(HWND_BROADCAST,my_mex_type,0,0); exit(-1);// uscita } } } else if(risp[0]=='Y') { errore=printf("\n\nil posto %d,%d non è disponibile nella sala\n", risp[5],risp[6]); if(errore<0) { if(WSAGetLastError()==WSAEINTR) { printf("errore nella printf"); SendMessage(HWND_BROADCAST,my_mex_type,0,0); exit(-1);// uscita } } puts("\ncontrollare le dimensioni della sala tramite la funzione visualizza"); } else errore=printf("\nil posto %d,%d è stato prenotato con codice %s \n", risp[5],risp[6],risp); if(errore<0) { if(WSAGetLastError()==WSAEINTR) { printf("errore nella printf"); SendMessage(HWND_BROADCAST,my_mex_type,0,0); exit(-1);// uscita } } q++; } // chiudi la while controllo sulla q }


Rispondi quotando