Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

For this assignment we are going to gather statistics about words in files. Our goal is to write a program in C++ that reads the

For this assignment we are going to gather statistics about words in files. Our goal is to write a program in C++ that reads the text from files and determines information about the longest word and longest line in each file.

For the purpose of this assignment, a line is defined to be all characters up to a newline; in other words, what is fetched by the getline() function. A word is defined to be a sequence of one or more non-whitespace characters. Words are separated by whitespace (space, tab, newline, etc).

The input to the assignment is provided as command line arguments. Command line arguments consist of optional flag arguments (a flag is an argument whose first character is a dash), followed by one or more file names. If file names are provided, the program should perform its operations on each file. If no file names are provided, the program should print the error message NO FILES and should terminate.

The default processing for each file is to read through the entire file, find the longest word and the longest line in the file, and generate output.

The program recognizes certain optional flag arguments that change the behavior of the program. Your program must recognize the arguments if they are provided and change the behavior of the program. The flag arguments can appear in any order. There can be more than one of them specified. If duplicates of the same argument are specified, its ok to ignore the duplicate.

The flags are:

-m when printing the longest word in the file, print only the longest words that appear the most often

-c in addition to printing the longest words and the length of the longest line, include, in parenthesis, a count of the number of times that the word/line appears

-b consider multiple blanks between words on a line as a single blank for the purpose of calculating the length of a line

If a flag is provided that the program does not recognize, the program should print a line with the unrecognized flag followed by the string UNRECOGNIZED FLAG. The program should exit after printing this line.

If a filename provided on the command line cannot be opened, the program should print a line with the filename followed by the string FILE NOT FOUND. The program should continue with the next file after printing this line.

The format of the output for each file consists of a maximum of three lines

A line with the filename followed by a colon

A line with a sorted list of the words that are the longest words in the file, comma separated

A line containing a number which is the length of the longest line in the file If there are no words in the file, then the second line in the output (with the words) is skipped.

Use map to store the count of longest words and longest lines Do the following program in c++ using command line arguments. The accessing file should be using stream.

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

Recommended Textbook for

Pro Database Migration To Azure Data Modernization For The Enterprise

Authors: Kevin Kline, Denis McDowell, Dustin Dorsey, Matt Gordon

1st Edition

1484282299, 978-1484282298

More Books

Students also viewed these Databases questions