C programming – Basic

Develop a C (or C++) program that reads an unsigned number in some base and outputs the

equivalent value in BCD.

Your program must require a single command line argument, the name of an input file. This

input file will consist of any number of lines, each falling into one of three varieties:

1. Comment – These lines always start with an asterisk (‘*’) and should be completely

ignored.

2. Blank line – Used to visually organize the input file and should be completely ignored.

3. Data line – These are the ones your program will process and are described below.

Data lines will all have exactly two items separated by a single space character:

1. an input base (2 through 16) and

2. an input value in that base whose decimal equivalent will never be more than 6 digits

For each Data line from the input file, you must output:

1. the line number of the input file this data line is on (starting the file with line 1… same as

a text editor would show)

2. a colon followed by a space

3. the BCD equivalent of the input value , four bits at a time with one space between each

set of bits. Remember the decimal values will not exceed 6 digits, so the BCD value will

never exceed 24 bits, not including whitespace between 4-bit sets. NEVER print any

leading bit sets that contain only zeros…

a. eg, instead of 0000 0101 0000 1000, you would print 0101 0000 1000

b. only exception is if the value itself is zero, as in the example below

Example input file Expected output to console

* a first example

2 011000

8 70

7 0

11 3A

* This is long

10 123456

Results

2: 0010 0100

4: 0101 0110

5: 0000

6: 0100 0011

9: 0001 0010 0011 0100 0101 0110

Tags: No tags