Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

C++ PROGRAM Process command line arguments just add additional code to my program with the ff: * Should have command line mode in the main

C++ PROGRAM

Process command line arguments

just add additional code to my program with the ff:

* Should have command line mode in the main (the interactive mode is already done)

* write a code to accept filenames on the command line and read its byte

* allow drag and drop (the user could simply drag the file to the reader)

**YOU CAN REFER TO THIS VIDEO

https://drive.google.com/file/d/1etOxzjPrRZ1rrIF-wWXnutUWuUXN5SeX/view?usp=sharing

SOURCE CODE:

#include #include #include #include

using namespace std;

void inputFileDetails(ifstream& ifs) {

string fn; cout << "Enter the exact location of the file & put filename extension (ex. .txt at the end): "; cin >> fn; cout << " Counting number of bytes.. "; ifs.open(fn, ios::in | ios::out | ios::binary); if (!ifs.is_open()) { cout << "File could not be opened!"; exit(1); } }

void countTotalBytes(ifstream& ifs, int counters[], int& totalbytes) { char c; while (ifs.read(&c, 1)) { counters[(unsigned char)c]++; totalbytes++; } ifs.close(); }

void findMax(int counters[], int& max) { for (int i = 0; i < 256; i++) if (counters[i] > max) max = counters[i];

} void displayDistribution(int counters[], int max) {

for (int i = 0; i < 256; i++) { int stars = round(counters[i] * 100.0 / max); cout << setw(2) << setfill('0') << hex << i << "(" << setfill(' ') << setw(3) << dec << i << ")" << ": "; for (int i = 0; i < stars; i++) cout << "*"; for (int u = 100; u > stars; u--) cout << "."; cout << " " << stars; if (isprint(char(i))) cout << "\t" << "(" << char (i) << ")"; cout << endl;

}

}

void displayStatistics(int max, int totalbytes) {

cout << " Max count: " << max; cout << " Legend: * = " << round(max / 100.0) << " bytes "; cout << " Total: " << totalbytes << endl;

}

int main() { string fn; int counters[256], max = 0, totalbytes = 0;

for (int i = 0; i < 256; i++) counters[i] = 0; ifstream ifs;

inputFileDetails(ifs); countTotalBytes(ifs, counters, totalbytes); findMax(counters, max); displayDistribution(counters, max); displayStatistics(max, totalbytes); return 0; }

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions