好吧,我已经为这个问题苦苦挣扎了好几个小时。但由于某些原因,我找不到该死的错误。我真的希望你能最终帮助我。
接下来,我编写了一个程序,用户必须在其中插入一些关于他的事实。名字 = vname,姓氏 = nname,他的帐户 = echte_kontonummer,他的 Pin 和程序会将这个和他的信用写入 a 文件。不要误解我,这只是为了学习目的,我永远不会用这个进行网络钓鱼;D。
但是,该工具将此数据写入文件。到目前为止还不错,但现在它应该逐行读取文件。并将文本形成我需要进一步操作的变量。
但由于某些原因,它只是读取愚蠢的随机数字和字符。
最后是加载文件的方法:
void Kunde::laden(){
string inhalt_anrede, inhalt_vname, inhalt_nname, inhalt_knummer, inhalt_pin, inhalt_guthaben;
int anrede, vorname, nachname, knummer, pin, guthaben;
system("cls");
cout << "wie ist ihr nachname?" << endl;
cin >> nname;
user1.open(nname, ios::in);
if(!user1.is_open()){
cout << "Datei nicht gefunden" << endl;
}
if(user1.is_open()){
for ( anrede=1;!user1.eof();anrede++){
if (anrede==1){
strcpy(Anrede,inhalt_anrede.c_str());
}
else
getline(user1, inhalt_anrede);
}
for ( vorname=1;!user1.eof();vorname++){
if (vorname==2){
strcpy(vname,inhalt_vname.c_str());
}
else
getline(user1, inhalt_vname);
}
for ( nachname=1;!user1.eof();nachname++){
if (nachname==3){
strcpy(nname,inhalt_nname.c_str());
}
else
getline(user1, inhalt_nname);
}
for ( knummer=1;!user1.eof();knummer++){
if (knummer==4){
echte_kontonummer=atol(inhalt_knummer.c_str());
}
else
getline(user1, inhalt_knummer);
}
for ( pin=1;!user1.eof();pin++){
if (pin==5){
echte_pin=atoi(inhalt_pin.c_str());
}
else
getline(user1, inhalt_pin);
}
for ( guthaben=1;!user1.eof();guthaben++){
if (guthaben==6){
Guthaben=atoi(inhalt_guthaben.c_str());
}
else
getline(user1, inhalt_guthaben);
}
cout << "Daten erfolgreich geladen." << endl;
cout << vname << " " << nname << " " << echte_kontonummer << " " << echte_pin << " " << Guthaben << endl;
}
user1.close();
}
并在这里完成这门课
class Kunde{
private:
char Anrede[5];
char vname[20];
char nname[20];
long long echte_kontonummer;
int echte_pin;
int Guthaben;
fstream user;
ifstream user1;
public:
void einpflegen();
void login();
void einzahlen();
void speichern();
void laden();
void zeige_guthaben();
};
顺便说一句,语言是德语,希望这没关系。
哦,是的,这里解释了循环是如何工作的
for ( int guthaben=1;!user1.eof();guthaben++){ //i think this is understandable
if (guthaben==4){ //in this case the desired value is on line 4 (the account number.
getline(user1, inhalt_guthaben);
echte_kontunummer=atol(inhalt_knummer.c_str()); //from string to int to the desired value Guthaben. here foe e.g i only get random numbers when the console should put out this value
}
}