我正在尝试在c ++中打开文件inFile.dat。出于某种原因,每当我执行我的程序时,我的其他序列触发,说我的程序无法打开文件,所以它终止。我将文件inFile.dat放在与我的程序和.cpp相同的文件夹中。如果有人能够发现我可能犯过的错误,或者我可能没有做正确的事情那会很棒。我使用的编程平台是dev c ++,如果有帮助的话
#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
using namespace std;
int main() {
// declare variables to manipulate data
string firstName, lastName;
double testScore;
char grade = ' ';
double sum = 0;
int count = 0;
// declare stream variables
ifstream inFileData;
ofstream outFileData;
// Open input file
inFileData.open("inFile.dat", ios::in);
// open output file
outFileData.open("outFile.dat", ios::out);
if (outFileData.is_open() && inFileData.is_open()) {
outFileData << fixed << showpoint << setprecision(2);
inFileData >> firstName >> lastName; // reading names
inFileData >> testScore; // reading test score
while (inFileData) {
sum = sum + testScore; // update sum
count++; // increment counter
// deteremine the grade
switch (static_cast<int> (testScore) / 100) {
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
grade = 'F';
break;
case 6:
grade = 'D';
break;
case 7:
grade = 'C';
break;
case 8:
grade = 'B';
break;
case 9:
case 10:
grade = 'A';
break;
default:
cout << "Invalid score."
<< endl;
} // end switch
outFileData << left << setw(12) << firstName
<< setw(12) << lastName
<< right << setw(4) << testScore
<< setw(2) << grade
<< endl;
inFileData >> firstName >> lastName; // read the name
inFileData >> testScore; // read the test score
} // end while
} // end if
else
cout << "Could not open file"
<< endl;
outFileData << endl;
if (count != 0)
outFileData << "Class Average: "
<< sum / count
<< endl;
else
outFileData << "No data."
<< endl;
// closing files
inFileData.close();
outFileData.close();
return 0;
}
inFile.dat的内容是:
Steve Gill 89
丽塔约翰逊91.5 兰迪布朗85.5Seema Arora 76.5
Samir Mann 73
Samantha McCoy 88.5