Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [C] Server concorrente

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    16

    [C] Server concorrente

    Ciao a tutti, per l'esame di programmazione in ambienti distribuiti devo implementare un server concorrente...

    Ho però un problema...

    Ho dichiarato 2 variabili op1_16 e op2_16 che sono uint16_t (su 2 byte); quando vado a fare la sscanf da un buffer, cosa devo utilizzare tra ""? Per uint8_t uso "%su", per uint32_t "%u" e per uint16_t non so...

    Per aiutarvi ecco un esempio:
    ----------------------------

    Readn(connfd,buffer,4); //leggo 4 byte--> i 2 operandi da 2 ciascuno

    sscanf(buffer,"%u%u",&op1_16,&op2_16); //prendo da buffer i due operandi con %u

    -----------------------------
    Il problema è che mi dà un warning su %u dicendo che i parametri passati non sono dello stesso tipo...

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    16
    Ok, visto che non ho avuto nessuna risposta provo a riproporre la domanda con altri tipi;

    in un buffer ho 2 numeri interi con segno che possono essere su 1 o 2 o 4 byte; con la funzione sscanf vorrei prendere da questo buffer i 2 numeri.

    per numeri da 1 byte--> sscanf(buffer, "%?%?", &op1, &op2);

    per numeri da 2 byte--> sscanf(buffer, "%sd%sd", &op1, &op2);

    per numeri da 4 byte--> sscanf(buffer, "%ld%ld", &op1, &op2);

    Il problema è sui numeri da 1 byte che non so con che cosa prenderli (dove ho messo i punti interrogativi)...

  3. #3
    Leggere la documentazione del compilatore?
    Amaro C++, il gusto pieno dell'undefined behavior.

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.