c ++ fstream выводит только один случай - PullRequest
0 голосов
/ 29 октября 2018
void budgetCheck() {
    for (int i = 0; i != 100; i++) {

        if (arrayTotalCost[i][2] > arrayTotalCost[i][0]) {
            outputValidPackage(i);
        }
        else outputInvalidPackage(i);
    }
}

void outputValidPackage(int i) {
    fstream validPackage;
    if (validFirst = false) {

        validPackage.open("requestOutValid.txt");
        validFirst == true;
    }
    validPackage << "Total cost is : " << arrayTotalCost[i][0] << " , the budget is : " << arrayTotalCost[i][2] << endl;
    validPackage << "The Sydney to Tokyo flight is on day " << flightTicketArray[i][1] << " and costs " << flightTicketArray[i][3] << endl;
    validPackage << "The Tokyo to Sydney flight is on day " << flightTicketArray[i][2] << " and costs " << flightTicketArray[i][4] << endl;
    validPackage << "A " << hotelArray[i][3] << " star hotel, from day " << hotelArray[i][1] << " to " << hotelArray[i][2] << " will cost " << hotelArray[i][4] << endl;




}

void outputInvalidPackage(int i) {
    fstream invalidPackage;
    if (invalidFirst == false) {
        invalidPackage.open("requestOutInvalid.txt");
        invalidFirst = true;
    }
    invalidPackage << "Package is invalid" << endl << endl;

}

Цель кода - принимать запросы из текстового файла, а затем выводить действительные и недействительные запросы в отдельные текстовые файлы.

Все остальное в коде работает.

Я бы ожидал 100 случаев между двумя текстовыми файлами. Но выводится только один. Я не уверен, почему, выводимый случай выглядит случайным, но каждый раз один и тот же. 92-й случай. Это не последний действительный пакет или первый недействительный. Хотя это действительный случай.

РЕДАКТИРОВАТЬ: изменено = на ==. Теперь одно дело печатается в обоих файлах.

...