Wie kann ich eine Textdatei prüfen, wenn die Daten unter "INSERT_EMPLOYEE" ausreichen, um in meine "insertEmployee" -Funktion eingegeben zu werden? (Beispiel: richtige Zahl, Art der Argumente oder Überprüfung auf Argumentgrenzen) Wenn die Eingabe ein ungültiges Format ist, möchte ich die Operation nicht ausführen, sondern gehe einfach zur nächsten Operation.Funktionsaufruf, der nach Eingabe-Korrektheit aus Textdatei prüft - C++
Meine Textdatei:
INSERT_EMPLOYEE
12345
John
Smith
60000
35
INSERT_EMPLOYEE
Chris
Evans
70000
INSERT_EMPLOYEE
34567
Michael
Carter
50500
25
PRINT_ROSTER
Mein main.cpp:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
int id, salary, hours;
employeeList list = employeeList();
string line, firstName, lastName;
ifstream employeeFile;
employeeFile.open("employeeFile.txt");
while(getline(employeeFile, line)) {
if (line == "INSERT_EMPLOYEE") {
employeeFile >> id >> firstName >> lastName >> salary >> hours;
list.insertEmployee(id, firstName, lastName, salary, hours);
}
if (line == "PRINT_ROSTER") {
list.printRoster();
}
employeeFile.close();
return 0;
}
Sie tun dies, indem Sie 'std :: getline()' verwenden und die Eingabe selbst validieren. Der ">>" formatierte Eingabeextraktionsoperator funktioniert hervorragend, wenn die Eingabe gültig ist. Wenn es nicht ist, haben Sie ein großes Durcheinander in Ihren Händen, das schwer zu entwirren sein wird. Wenn die Eingabevalidierung erforderlich ist, verwenden Sie daher nicht '>>'. Ende der Geschichte. –
@SamVarshavchik Das macht vollkommen Sinn, danke! –
Grammatik Hinweis: "_inputted_ in meine" insertEmployee "-Funktion?". Probieren Sie den formelleren Wert "value to insertEmployee()" aus, übergeben Sie ihn per Referenz oder senden Sie ihn an die Funktion insertEmployee(). Oder wählen Sie ein Synonym für die richtige Zeitformel aus: put in, load, insert; key in, type Geben Sie Folgendes ein: code, store. "Eingeschlossen" ist eine Beschreibung der Vergangenheitsform von etwas, das Ihr Code noch nicht getan hat. –