Looking for help with an assignment? Connect with an assignment Expert Now!

Write a program

Write a program. Write a program, myfilehide2, that encrypts a file — ASCII or binary — and saves the encrypted file. myfilehide2 reads from stdin a string that specifies the file to be encrypted followed by an integer. For example,

% myfilehide2
a.out 7

myfilehide2 saves the encrypted content in a new file whose name has “.E2” added as a suffix. After doing so, the app deletes the original file by calling remove(). In the above example, a.out.E2. We restrict input file names to be less than 15 characters and output file names to be less than 18 characters to account for the 3 character suffix. Spaces are not allowed in a file name. The filename and number must be separated by one or more space (‘ ‘) or tab (‘t’) characters. The number must be a single digit — either 0, 1, …, 7 — and end with ‘n’ which is generated on stdin when the ENTER/RETURN key is pressed on our lab machines. All other input of different format are disallowed and should result in a suitable error message on stdout followed by app termination by calling exit(1).

use the library function getchar() to read the input byte-by-byte. When a space character or tab character is encountered, assume the filename has ended and store it as a string in a 1-D char array of size 16. Of course, that is assuming that the filename has not exceeded 15 characters. Instead of the constants 15 and 16, use the C preprocessor directive #define to specify your own macro to reduce the potential for run-time bugs. Read the single digit (0, 1, …, 7) into variable, char numpos, and convert numpos into a decimal number, unsigned int decpos, when interpreted as a decimal number. For example, the ASCII character ‘3’ stored in numpos is convered to the decimal number 3, not the decimal encoding of the ASCII character ‘3’ which is 51.

Do not use any string processing library function to perform the input parsing task. The parsing chore can be implemented with a few lines of code. Delegate the input parsing task to

void inputcheck(void);

which stores a valid filename input a global 1-D char array. Make the variable numpos also global.

After inputcheck() returns (it may not return if the input is ill-formatted), main() opens the input file to read and creates an output file with suffix “.E2” to write the encrypted bytes. If either of the two operations is unsuccessful, main() prints a suitable error message to stdout and terminates by calling exit(1). Otherwise, like in Problem 2, lab3, myfilehide2 reads the content of the input file byte by byte using fgetc(). Unlike myfilehide, myfilehide2 flips the bit value at the bit position specified by decpos and writes the resultant byte into the output file. For example, if an input byte has bits 00001111 and decpos equals 2, the encrypted byte is 00001011. Note that the rightmost bit at position 0 is considered the least significant bit. As with myfilehide, myfilehide2 has the property that running the app again on the encrypted file with the same digit as second arguments decrypts the file. Perform a similar cleanup as myfilehide so that the encrypted file with suffix “.E2” is deleted. Use Makefile to compile your app. Test and verify that it works correctly.

Write a program

Get a Quick Quote

Approximately 250 words
Total price (USD) $: 10.99

Pressed for time on your upcoming paper? We can help!

Bored with homework

Reviews from Clients who Ordered from Our Website

Client: 3425

Ive submitted over 30 assignments from this website and gotten an average of 3.8 G.P.A.

Client: 2516

Juggling school with family and work has always been hectic but this website made it easy to do my studies and work while raising my 3 year old girl.

Client: 3516

Great customer service and quality work delivered on time!

Client: 2718

Client: 7384

Client: 8291

Client: 162

Client: 827

They delivered a professional and well written Resume for me. Reccommend

Why Us?

Privacy

Your personal and payment details are safe with us. Our website uses secure encryption for all orders. We guarantee not to share your details with any third parties.

Flexible Pricing

We offer great discounts and flexible pricing tailored to your needs. Additionally, we provide offers for orders above 30 pages and returning customer.

Originality

Our Professional Team of Writers have great experience and writing techniques to provide you with Quality Non-plagiarized work.

Customer Support

Our Customer Support and Professional Team of Writers are always available to help you anytime. Our Team  of writers are also available to take care of your writing needs 24/7 Live Chat is available 24/7 

How it Works

Step1: Provide Instructions

 

Provide detailed instructions including deadline for your paper and any additional information

Step 2: Pay & Assign Writer

 

Complete payment through our safe checkout and wait for your order to be assigned to suitable writer

Final Step: Download & Review

 

Download & Review your paper. You may request revision if anything is not satisfactory and rate the writer.