#include<iostream>
#include<string>
#include<fstream>
#include<vector>
using namespace std;
void check(ifstream &iFile)
{
if (!iFile.is_open())
{
cout << "Data file not found!" << endl;
system("pause");
exit(1); // exit the program if the file is not found.
}
}
void readIn(ifstream &iFile, vector<string> &fName, vector<string> &lName, vector<string> &jTitle, vector<string> &eID, vector<double> &hoursWorked, vector<double> &wage, vector<int> &deductions, vector<double> &sPay, string sTemp, double dTemp, int iTemp)
{
while (!iFile.eof())
{
iFile >> sTemp;
fName.push_back(sTemp);
iFile >> sTemp;
lName.push_back(sTemp);
iFile.ignore();
getline(iFile, sTemp);
jTitle.push_back(sTemp);
iFile >> sTemp;
eID.push_back(sTemp);
iFile >> dTemp;
hoursWorked.push_back(dTemp);
iFile >> dTemp;
wage.push_back(dTemp);
iFile >> iTemp;
deductions.push_back(iTemp);
iFile >> dTemp;
sPay.push_back(dTemp);
}
cout << "completed" << endl;
}
int main()
{
ifstream iFile;
iFile.open("data.txt");
check(iFile);
vector<string> fName, lName, eID, eStatus, jTitle;
vector<double> nPay, gPay, oPay, oHours;
vector<double> hoursWorked, wage, sPay;
vector<int> deductions;
// temporary names to pass to the vector
string sTemp; // string temp
double dTemp=0; // double temp
int iTemp=0; // integar temp
readIn(iFile, fName, lName, jTitle, eID, hoursWorked, wage, deductions, sPay, sTemp, dTemp, iTemp);
/* while (!iFile.eof())
{
iFile >> sTemp;
fName.push_back(sTemp);
iFile >> sTemp;
lName.push_back(sTemp);
iFile.ignore();
getline(iFile, sTemp);
jTitle.push_back(sTemp);
iFile >> sTemp;
eID.push_back(sTemp);
iFile >> dTemp;
hoursWorked.push_back(dTemp);
iFile >> dTemp;
wage.push_back(dTemp);
iFile >> iTemp;
deductions.push_back(iTemp);
iFile >> dTemp;
sPay.push_back(dTemp);
}*/
int sizeOf = fName.size();
for (int a = 0; a < sizeOf; a++)
{
cout << fName.size() << " FName " << fName[a] << " LName " << lName[a] << " JobTitle " << jTitle[a] << endl;
cout << "EmployeeID " << eID[a] << " Hours Worked " << hoursWorked[a] << " Hourly Wage " << wage[a] << endl;
cout << "Deductions " << deductions[a] << " Salary Pay " << sPay[a] << endl;
}
system("pause");
return 0;
}
Ich bin in ein Problem, wo meine Funktion nichts tun wird. Es wird kompiliert, aber es gibt keine Ausgabe. Die Sache ist, wenn ich den Vektor sPay von allen Teilen nehme, funktioniert es vollkommen gut. Irgendwelche Vorschläge, warum der eine Teil nicht funktioniert? Von meiner begrenzten Kenntnis sollte es vollkommen gut funktionieren, aber ich kann nicht herausfinden, was das verursachen würde.Vector Function Programm Probleme
Mein Beispiel Textdatei ist
Alan
WakeField
IT GUY
T2034
40
15
1
Hourly
0.00
Ich schlage vor, Sie lesen [Warum ist Iostream :: eof innerhalb einer Schleife als falsch angesehen?] (Https://stackoverflow.com/questions/5605125/why-isiostreameof-inside-a-loop-condition-conspired) -wrong) –
Ich schlage Ihnen auch vor, [nehmen Sie ein paar gute Anfängerbücher] (http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) und lernen Sie über * Strukturen * und * Klassen *, um eng verwandte Daten zu gruppieren. Und natürlich über lokale Variablen! –
Fragen Sie sich das: Wenn nicht lesen 'sPay' ermöglicht das Programm zu arbeiten, muss etwas mit der Eingabe dafür falsch sein. Was lesen Sie vorher und was ist das nächste Datenelement in Ihrer Eingabedatei? – 1201ProgramAlarm