Question
Make a C++ program that reads from a file name specified in the command line as an argument, and ignores any extra command line arguments
Make a C++ program that reads from a file name specified in the command line as an argument, and ignores any extra command line arguments that are provided after the file name. However, if no file name is provided, the program should use the standard input instead of a file. If the file cannot be opened, print on a new line "File cannot be opened: ", followed the file name, and exit. The program should read from the file character by character until the end of file. If the input file is empty, print out the message "File is empty." on a new line and then exit. The program should count the number of lines, number of words, number of characters, number of digit characters ('0' - '9'), and the number of alphabetic characters seen in the file.(do not open the files using cin instead make sure you are using command line arguments through the argv[] array)
For example, with an input file of the following contents:
3456 Georgre 10.25
1234 smith 4.5
4321 staci 12.75
278 sandra 25.35
The displayed output is as shown below:
LINES: 4
WORDS: 12
CHARS: 75
DIGITS: 29
LETTERS: 21
Hints:
1. Use functions such as: isdigit(), isalpha(), and isspace().
2. You can use get() method for reading from the input.
3. Download the zipped file for the test cases from Canvas. These are the test cases you will be graded against on your submission to Vocareum. Use the test cases to test your implementation. Note that case 1 myfile1 is not included in the set. Your program will be checked against a file name, myfile1, that does not exist.
4. There are 4 test cases. Case 2 is for an empty file, myfile2. Note that case 3 is for checking you against no file is provided in the command line and your program switches to read from the stdin. The input for case 3 is from myfile3 on vocareum. Case 4 reads from a provided file name in the command line, myfile4.
do not open the files using cin instead make sure you are using command line arguments through the argv[] array
5. If you want to look at the input for one of the test cases, use the linux "cat" command. The cases are in the directory $LIB/public/recitationSP21\RA3. You can, for example, look at myfile3 by saying "cat $LIB/public/recitationSP21/myfile3", and you can look at the expected output by saying "cat $LIB/public/recitationSP21/case3.correct".
TEST CASES
https://drive.google.com/file/d/1vWczldafarS4vv6I_pBiYCHWY7RWHpN8/view?usp=sharing
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started