Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7613433
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 31, 20262026-05-31T02:09:13+00:00 2026-05-31T02:09:13+00:00

I would like to fscanf from a stream containing data like ABCD0000 into unsigned

  • 0

I would like to fscanf from a stream containing data like ABCD0000 into unsigned short variables.

What is the proper format specifier for that? I was unable to find any way of combining both "unsigned" and "hexadecimal" with the h (short) specifier.

Take for instance

#include <stdio.h>

unsigned short hex_input;
char byte;

int main(void) {
    scanf("%hX", &hex_input);
    printf("%hX\n", hex_input);
    byte = hex_input >> 8;
    printf("%hu\n", byte);
    byte = (char)hex_input;
    printf("%hu\n", byte);
    return 0;
}

And the data AB00. What I get as output is:

AB00
65451
0

Note that the second line is wrong, I would expect 171 (the AB part).

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-31T02:09:15+00:00Added an answer on May 31, 2026 at 2:09 am

    Should be hx still. (Hexadecimal is handled as unsigned by default.) Also note that your example of ABCD0000 will only have its lower four nybbles read into an unsigned short, so you’ll end up getting a value of 0.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

would like to start the PDF-Viewers from an Stream instead of an FileLocation ()
I would like to parse the values from aspx pages, both what is passed
I'm wanting to read hex numbers from a text file into an unsigned integer
Would like to declare data (Coord a) => Triangle a = Triangle{t0 :: a,
would like to match urls which are outside the comment function from javascript. Regex
Would like to analyze a stream of events, sharing certain characteristics (s.a. a common
Would like to set cookies from the server (CGI - C) Can it be
Would like some advice from this. I got a table where I want to
Would like to know which direction player hits terrain tile from (just a simple
Would like to be able to set colors of headings and such, different font

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.