使用函数和数组写入两个文件

Writing to two files using functions and arrays

本文关键字:两个 文件 函数 数组      更新时间:2023-10-16

我尝试了一切,我所知道的是不正确的,但至少输出是格式化的,我需要它为两个文件之一。我需要将信息发送到两个独立的.txt文件,这两个文件都携带不同的信息。如何使用我已经拥有的当前数组函数。我花了几个小时试图弄清楚这个问题,现在轮到你们了!谢谢你。

主要

#include<iostream>
#include<fstream>
#include<string>
#include "Payroll.h"
using namespace std;

const int NUM_EMPLOYEE = 75;
int main()
{
    int dependents;
    double payrate;
    string name;
    double hours;
    ifstream fin;
    int count = 0;
    Payroll employeeArray[NUM_EMPLOYEE];
    fin.open("employeeData.txt");
    if (!fin)
    {
        cout << "Error opening data filen";
        return 0;
    }
    else
    {
        while(fin >> payrate >> dependents)
        {
            getline(fin, name);
            employeeArray[count].setWage(payrate);
            employeeArray[count].setDependents(dependents);
            employeeArray[count].setName(name);
            cout << "How many hours has" << name << " worked? ";
                cin >> hours;
                employeeArray[count].setHours(hours);
            count++;
        }
    }
    for (int i = 0; i < count; i++)
    {
        employeeArray[i].printPayDetails(cout << endl);
    }
    cout << endl;
    return 0;
}
——

打印功能

void Payroll::printPayDetails(ostream& out)
{
    double normPay = getNormPay();
    double overTime = getOverPay();
    double grossPay = getGrossPay();
    double taxAmount = getTaxRate();
    double netPay = computePay();
    const int SIZE = 9;
    out << fixed << setprecision(2) << right << setw(5) << hours  << setw(SIZE)  << normPay << setw(SIZE) << overTime ;
    out << setw(SIZE) << grossPay << setw(SIZE) << taxAmount <<setw(SIZE) << netPay;
}

你的问题措辞有点不稳定,但我想我明白你在说什么。如果你想输出到两个不同的文件,你需要两个字符串流。下面是一个例子:

#include <fstream>
void main()
{
     //Open file 1
     ofstream file1;
     file1.open("file1.txt");
     file1 << "Writing stuff to file 1!";
     //Open file 2
     ofstream file2;
     file2.open("file2.txt");
     file2 << "Writing stuff to file 2!";
     //That the files are open you can pass them as arguments to the rest of your functions.
     //Remember to use &

     //At the end of your program remember to close the files
     file1.close();
     file2.close();
}