在c ++中打开文件的问题

时间:2017-09-15 16:24:43

标签: c++ fstream

我正在尝试在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.5

Seema Arora 76.5

Samir Mann 73

Samantha McCoy 88.5

0 个答案:

没有答案