Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Fill in the bolded section below. using System; using System.Collections.Generic

ID: 3548339 • Letter: F

Question

Fill in the bolded section below.



using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;


class wk13asgn

{

// Instance variables for opening and reading the file

static string file_name;

static BinaryReader in_stream;

static FileStream fs;


// Instance variable used to find the end of file

static bool end_of_file = false;


// Instance variables used by getbit()

static byte current_bit_position = 0;

static byte current_byte;


static void get_file_name()

/*********************/

/*** GET FILE NAME ***/

/*********************/

{

Console.Write("Enter File Name: ");

file_name = Console.ReadLine();

}


static void open_input_file()

/*****************/

/*** OPEN FILE ***/

/*****************/

{

try

{

fs = new FileStream(file_name, FileMode.Open, FileAccess.Read);

in_stream = new BinaryReader(fs);

}


catch (Exception)

{

Console.WriteLine("Can't open {0}", file_name);

Environment.Exit(0);

}

}


static bool no_more_bytes(BinaryReader rb)

/**********************/

/*** NO MORE BYTES? ***/

/**********************/

{

return (rb.PeekChar() == -1);

}


static byte read_a_byte(BinaryReader rb)

/********************************************************************************/

/*** Function to read a single byte from the input stream and set end_of_file ***/

/********************************************************************************/

{

byte abyte;


if (!no_more_bytes(rb))

abyte = rb.ReadByte();

else

{

abyte = 0;

end_of_file = true;

}


return abyte;

}


static byte getbit()

/**********************************************************/

/*** Function to get a single BIT from the input stream ***/

/**********************************************************/

{

byte mask;


//Your job is to fill in this function so it returns

//either a zero or a one for each bit in the file.

}


static void process()

/********************/

/*** PROCESS FILE ***/

/********************/

{

byte bit;

int counter = 0;


while (!end_of_file)

{

bit = getbit();

if (!end_of_file)

{

Console.Write("{0}", bit);

counter++;

//We only separate bytes to make the output easier to read.

//Your program should treat each bit individually.

if ((counter % 8) == 0) Console.Write(" ");

}

}

Console.WriteLine();

}


static void Main(string[] args)

{

if (args.Length == 0)

get_file_name();

else

file_name = args[0];

open_input_file();


process();


in_stream.Close();

fs.Close();

}

}

Explanation / Answer

static byte getbit() /**********************************************************/ /*** Function to get a single BIT from the input stream ***/ /**********************************************************/ { byte mask;
//here we use fill in this function so it returns //either a zero or a one for each bit in the file.
mask = (byte)(128 >> current_bit_position); if (current_bit_position == 0) current_byte = read_a_byte(in_stream); byte bit = (byte)((current_byte & mask) >> (7 - current_bit_position)); current_bit_position++; if (current_bit_position == 8) current_bit_position = 0; return bit; }

I tested the program on a file containing the characters AZby which produced the following output:

01000001 01011010 01100010 01111001

These, of course, are the binary representations of 65, 90, 98 and 121 which are the ASCII codes of the characters in the file.
Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote