Я пытался читать данные из employee-info.txt, используя ifstream, и сохранял их в массиве, но он ничего не читал.
Основная цель моего кода - каждый раз, когдаон смог прочитать значение в employee-info.txt, он будет зациклен, и целочисленная переменная valueChecker будет увеличиваться на единицу.После завершения цикла будет возвращено значение valueChecker, чтобы определить, сколько строк извлекается из employee-info.txt.Основываясь на содержимом employee-info.txt, он должен вернуть значение int, равное 8, но возвращает только значение int, равное 0, что является инициализированным значением.
Я также проверил через отладчик и массив записей.ничего из файла не прочитал.Я уже проверил адрес файла, и это правильно.
Вот код в Employee.h:
#pragma once
#include<string>
#include<iostream>
class Employee
{
public:
struct EmployeeRecord {
static const int recordSize = 100;
static const int fieldSize = 4;
std::string record[recordSize][fieldSize];
};
public:
Employee();
~Employee();
int employeeDataChecker();
void employeeWriteData();
void employeeDisplayData();
EmployeeRecord& employeeReturnRecordArray();
private:
EmployeeRecord emp_record;
};
Employee.cpp:
#include "Employee.h"
#include <string>
#include <iostream>
#include <iomanip>
#include <fstream>
#include <sstream>
int Employee::employeeDataChecker()
{
//Check if there are data in the employee-info.txt
EmployeeRecord emp;
int valueChecker = 0;
std::ifstream inFile;
inFile.open("C:\\Users\\RJ\\Desktop\\employee-info.txt");
for (int index = 0; index < emp.recordSize; index++) {
for (int index2 = 0; index2 < emp.fieldSize; index2++) {
while (inFile >> emp.record[index][index2]) {
valueChecker++;
}
}
}
inFile.close();
return valueChecker;
}
employee-info.txt:
ID Firstname Lastname Sales
1 Joe Satriani 500000.00