My professor gave us some code to rewrite using cctype and string functions. When I run the code on a PC, it reads the input file and puts out an output just fine. On my mac, it simply says it cannot open the file
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
#include <iostream>
#include <fstream>
#include <cstring>
#include <cctype>
#include <cstdlib>
using namespace std;
int main()
{
const char filename[] = "data.txt";
char buffer[16], winner[32], loser[32];
int winnerScore, loserScore;
ifstream fin(filename);
if (!fin)
{
cerr << "Unable to open file " << filename << endl;
exit(1);
}
while (!fin.eof())
{
// get winner
fin >> winner;
if (fin.eof()) break;
// get next token. Could be score or 2nd part of winner name
fin >> buffer;
// If buffer has a comma, then it's a score
if (strchr(buffer,','))
{
winnerScore = atoi(strtok(buffer,","));
}
else
{
strcat(winner," ");
strcat(winner,buffer);
fin >> buffer;
winnerScore = atoi(strtok(buffer,","));
}
// get loser
fin >> loser;
// get next token. Could be score or 2nd part of loser name
fin >> buffer;
// If first digit is numeric, then it's a score
if (isdigit(buffer[0]))
{
loserScore = atoi(buffer);
}
else
{
strcat(loser," ");
strcat(loser,buffer);
fin >> buffer;
loserScore = atoi(buffer);
}
cout << winner << " over " << loser << ' ' << winnerScore << " to " << loserScore << endl;
}
}
|
This is the contents of the text file I'm trying to read.
Cincinnati 27, Buffalo 24
Detroit 31, Cleveland 17
Kansas City 24, Oakland 7
Carolina 35, Minnesota 10
Pittsburgh 19, NY Jets 6
Philadelphia 31, Tampa Bay 20
Green Bay 19, Baltimore 17
St. Louis 38, Houston 13
Denver 35, Jacksonville 19
Seattle 20, Tennessee 13
New England 30, New Orleans 27
San Francisco 32, Arizona 20
Dallas 31, Washington 16