K
Ich mach jetzt seit gut drei tagen c++ und bin dabei n mail-programm mit web-interface zu schreiben (unter linux) aber ich hab ein winziges problem, bei dem ich einfach nicht dahinter komme, woran es liegen kann!
Mein Source im kurzformat:
class mail_
{
public:
string filename_;
bool gelesen;
};
//Variablen
mail_ e[8192];
//Prototypen schreib ich jetzt net auf...
int main()
{
http_server();
return(0);
}
void http_server()
{
while(1)
{
//auf verbindung warten...
//...
//verbindung annehmen, die angeforderte adresse auslesen
//in addr speichern, wenn addr.substr(1,8)=="showmail" dann
//mail anzeigen und als gelesen markieren
markread(addr.substr(9,20)); //als gelesen markieren
//Ausgabe von gelesen ergibt
//true
}
}
void markread(string id)
{
int i;
for(i=0;i<ds;i++)
{
if(e[i].id == id)
{
cout << e[i].gelesen << endl;
e[i].gelesen = true; //<-- da wird das als gelesen
return; //markiert, wie jeder sehen
//kann!
}
}
}
soweit so gut. wenn ich das jetzt aber durchlaufen lasse und mir die mail xyz anzeigen lasse, dann setzt er gelesen auf true, gibt er auch richtig aus.
wenn ich dann aber die mail nocheinmal anklicke, so steht gelesen immer auf false, bevor er es wieder auf true setzt. warum? das ist auch mit anderen variablen vom typ string so, warum ist das so?