Write a program writeOddEven.cpp which reads in a list of integers from the terminal and writes the odd numbers to one file and the even numbers to another file. The program prompts and reads in the name of the file which will contain the odd integers, the name of the file to contain the even integers and a list of integers terminated by a 0. In each of the files, exactly five integers should be written on each line except for the last line. In addition to writing the two files, the program writes to the terminal the number of integers in each file.
A sample run of the program would look like this:
> writeOddEven.exe
Enter name of file for odd integers: odd.txt
Enter name of file for even integers: even.txt
Enter list of odd and even integers (followed by 0):
2 3 20 300 400 5 -70 9 9 -101 6 8 10 77 55 400 16 20 300 0 File odd.txt contains 7 odd integers.
File even.txt contains 12 even integers.
After running this program file odd.txt contains: 3 5 9 9 -101
77 55
To view the contents of the file, type "more odd.txt". After running this program file even.txt contains:
2 20 300 400 -70 6 8 10 400 16
20 300
To view the contents of the file, type "more even.txt". Note that duplicate integers are permitted in the input and in files odd.txt and even.txt. Also note that the names for the files can be different than what is used here (do not hard code these in your solution).
Run writeOddEven_solution.exe to see examples of the program. Your program should behave like this program with the same input and output.
Prompt and read in the name of the output for the odd integers. Read and store this name as a string. Include the C++ command "#include " to use C++ strings.
Prompt and read in the name of the output file for the even integers. Read and store this name as a string.
Review and use the program writeFile3.cpp discussed in class as a template for your program. (See the class slides or download the program from Carmen).
Open two files for output. Make sure to pass a C style string, not the C++ string, to the open routine. Include the C++ command "#include " to use C++ file streams. Be sure to use the type "ofstream", not "ifstream", for your output file streams.
Check if the two files were successfully opened for output. If not, print an error message and exit. Include the C++ command "#include " to use the C++ exit command.
Prompt for the list of odd and even integers followed by 0.
Read in the first element x of the list
While x is not 0 do:
If x is odd, then:
? Write x followed by a blank space to the file for odd numbers
? Increment the counter of odd integers by 1
? If there are 5 integers on the current line in the file output a new line to the file
If x is even, then:
? Write x followed by a blank space to the file for even numbers
? Increment the counter of even integers by 1
? If there are 5 integers on the current line in the file output a new line to the file
Output a new line to both of the output files. (This makes sure that both files end in a new line).
CLOSE both output file streams. (You will lose points if you forget to close the output file streams, even though your program runs correctly).
Write the following message to the terminal:
File fnameOdd contains numOdd odd integers.
File fnameEven contains numEven positive integers.
where fnameOdd and fnameEven are the odd and even file names, respectively, and numOdd and numEven are the number of odd and number of even integers, respectively.
TEST YOUR CODE THOROUGHLY. For example, pay close attention to the format of the output including empty lines. Your program must not have a run-time error.
Be sure to add the header comments "File", "Created by", "Creation Date" and "Synopsis" at the top of the file. Each synopsis should contain a brief description of what the program does.
Be sure that there is a comment documenting each variable.
Be sure that your if statements, for and while loops and blocks are properly indented;
Check your output against the output from the solution executables provided.