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

Write a program that accepts two command line arguments. The first is the name o

ID: 3854981 • Letter: W

Question

Write a program that accepts two command line arguments. The first is the name of a file that is to be used as the input file and the second is the name of the output file.
The program is to base-64 encode the first file, which is to be treated as a binary file, into the second. The first line of the output file, which is a text file, should contain the name of the first file (so that the reconstructed data can be placed in a file of the correct name later).
Your program should print to the console the total number of bytes contained in the input file.

i am trying to read 062434752 from a file which from the program gives yjnq and then print that to another file.

#include
#include
#include

char map(unsigned value)
{
   if (value < 26) return 'A' + value;
   if (value < 52) return 'a' + value - 26;
   if (value < 62) return '0' + value - 52;
   if (62 == value) return '+';
   if (63 == value) return '/';
      
   return '?';
}

unsigned unmap(char c)
{
   if ('/' == c) return 63;
   if ('+' == c) return 62;
   if (isdigit(c)) return 52 + (c - '0');
   if (islower(c)) return 26 + (c - 'a');
   if (isupper(c)) return 0 + (c - 'A');
      
  
   return 0xFFFFFFFF;
}

int main(void)
{
   char *message = "Hello World!";
  
   unsigned data = 062434752; // 0xCA35EA;
   char chars[4];
  
   printf("DATA: %o ", data);
  
   for (int i = 0; i < 4; i++)
   {
       unsigned value = (data >> (18 - 6 * i)) & 077;
      
       chars[i] = map(value);
   }
  
   printf("MSG : ");
   for (int i = 0; i < 4; i++)
   {
      
       printf("%c", chars[i]);
   }
   printf(" ");
  
   data = 0;
   for (int i = 0; i < 4; i++)
   {
       unsigned value = unmap(chars[i]);
      
       data <<= 6;
       data += value;
   }
  
   printf("DATA: %o ", data);

   return EXIT_SUCCESS;
}

Explanation / Answer

Hi,

To pass the command line arguments, you need to pass the arguments in the main function and after that you need to check that whether the file that is passed over there in Command Prompt exists or not and if not the you need to create the file using the filestream object as:

File fs= new File("name");

File fs2 =new File("name1");

FileInputStream fin=new FileInputStream(fs);

FileOutputStream fout =new FileOutputStream(fs2);

Like this you can create the file and filestreams and accordingly pass the file names to filestreams.

After that, you can get to know about the number of bytes of file1 by using inbuilt function of fileinputstream of length().You can then store the content of file1 by storing the object to some new file object and then assigning that to the fileoutputstream.

I hope it will solve your problem.

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