- Due: Thursday, May 27th no later than 11:59pm.
- Submission instructions: push a commit with the tag
lab4to your git repository.
- Deadline reminder: after the deadline passes, you cannot earn any points for this assignment. If the deadline is approaching, submit what you have in order to earn partial credit.
- Practice working with strings.
- Practice reading to and writing from a file.
This problem comes from problem 1, Chapter 8 on pages 515-516 of the textbook.
You are to write a program that will read the names of hurricanes that affected Florida, their categories, and their date from the file
/public/lab4/hurricanes.csv. You should copy that file to your
labs/lab4/ directory to read it in.
You will write the list sorted by name to a file. Only print the number of the category, not the whole phrase that is in the file for category. For example, the first hurricane info line you print to your file should look like
Agnes 1 19-Jun,1972
A sample output file can be found at
- Write your program in a file called
- Your output formatting must match the example. Use a tool like diffchecker to compare the content of your output file with the sample output. You do not need to worry about trailing spaces.
- In previous labs, we have used tabs (
\t) to space our output. For this assignment, you may want to use padding instead. For example, if the character array
printf("%10s", var)would print so that the output took up exactly 10 characters. To print with the spaces on the right, we could do
- Consider structuring your program like so: store each line in an array of strings. Sort it. (Or sort an array of pointers to strings in your original array.) Then use
strtokonly when you go to print out the lines in sorted order.
- Look at
/public/examples/chap8/fig_8_14.c, which also sorts an array of strings
Grading - 100 points
- 5 points – comments explaining what your program does
- 10 points – indent your code so it is readable
- 15 points – compiles successfully with -Wall – no warnings
- 5 points – does not use globals
- 10 points – successfully reads from file in same directory as your program
- 5 points – prints to a file in a pleasing manner and shows all the information
- 5 points – uses
fgetsto read in each line
- 5 points – stores each line in an array of strings
- 5 points – sorts the array
- 5 points – prints only the category number
- 5 points – uses at least 2 functions plus main
- 10 points - matches the sample output formatting exactly
This lab will be graded with scores in Brightspace by 5pm on May 28th.