Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

19.11.2006, 17:37

Programm erstellt eine txt datei, schreibt aber nicht rein .

Wenn man das Programm kompiliert und startet muss man sich zuerts 'registrieren' , dabei sollte das programm eine txt- datei anlegen und die benutzerdaten speichern, das klappt aber nicht:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
//C++ Alexander Stepanov


#include <iostream>
#include <string>
#include <windows.h>
#include <fstream>
#include <string>
#include <cstdlib>

void Login();
void Taschenrechner();

using namespace std;

int main()
{
    ofstream dat_aus;
    ifstream dat_ein;

    
    string name;
    string nameneu;
    string passwort;
    string passwortneu;
    string passwortwdh;
    string dateiname = ("user.txt");
    string falsch ="Falsches Passwort! Programm wird beendet!";
    char chZeichen;
    char chzeich;

    
    dat_ein.open(dateiname.c_str(), ios_base::out | ios_base::app);
     
    cout << "(R)egistrieren / (L)ogin"<<endl; 
    cin >> chZeichen;
    
    if(chZeichen == 'r')
    {
    cout << " - Bitte geben Sie ihren Benutzernamen ein: ";
    cin >> nameneu;
    
    cout << endl << " - Bitte geben Sie ihr Passwort ein: ";
    cin >> passwortneu;
    
    cout << endl << " - Bitte Passwort wiederholen: ";
    cin >> passwortwdh;
    
    if( passwortwdh != passwortneu)
    {
    cout << "Die Passwörter stimmen nicht überein! Bitte starten Sie das Programm neu! " << endl;
    
    Sleep(3000);
    
    return -1;
    }
    
    else
    {
    
    cout << " Bitte warte! Neue Benutzereinstellungen werden gespeicher!" << endl;

    dat_aus << nameneu << endl;
    dat_aus << passwortneu << endl;
    dat_aus.close();
    
    Sleep(3000);
    
    }
    
    cout << "(L)ogin / (B)eenden" << endl;
    cin >> chzeich;
    
    if(chZeichen == 'l')
    {
    Login();
    }
    else if(chZeichen == 'b')
    {
    Sleep (2000);
    
    return -1;
    }
    }
    
    if(chZeichen == 'l')
    {
    Login();
    }
    
    
    
    
    
    
    
    

}

void Login()
{
    string name;
    string passwort;
    string passwortneu;
    string nameneu;
    string dateiname =("user.txt");

    ifstream dat_ein;
    ofstream dat_aus;
    
    dat_ein.open(dateiname.c_str(), ios_base::out | ios_base::app);
    
    cout << "Benutzername: " << endl;
    cin >> name;
    
    cout << " Passwort: " << endl;
    cin >> passwort;
    
    dat_ein >> nameneu >> passwortneu;
    
    if(passwortneu != passwort)
    {
        cout << "Falsches Passwort! Programm wird sofort beendet!" << endl;
        
        Sleep(2000);
        
        
    }
    
    else
    {
        cout << "Bitte Warten!" << endl;
        cout << "Hier endet die Betaversion des Programms ASTA!" <<endl;
        
        Sleep(3000);
        
            
    }
    
    

}

2

19.11.2006, 17:44

1. Bitte aussagekräftigere Titel verwenden!
2. In Zukunft dein Problem etwas genauer beschreiben!
3. So wies aussieht, hast du nicht festgelegt, wohin dat_aus schreiben soll.

3

19.11.2006, 17:47

1.srry
2.hatte nicht wirklich zeit alles ausführlich zu beschreiben
3. schau ich mir näher an, danke

4

21.11.2006, 14:55

gut des mim dat_ein und dat_aus ist jetzt geklärt(hoff ich mal xDD) aber des prog weisst nen zwoten fehler auf: wenn man sich 'regiestriert' also r drückt, alles ausfühlt, so kann ich dann die Funktion Login() nicht öffnen. Am Programm start geht es, nur nicht mehr danach...
oje oje :oops: hoffe ihr versteht mich :?

spacegaier

Alter Hase

Beiträge: 572

Beruf: Student

  • Private Nachricht senden

5

22.11.2006, 10:37

Du liest bei der zweiten Aktionsauswahl die Eingabe in eine andere Variable ein, als in die, die du dann auswertest hinsichtlich login oder beenden! Hoffe das ist verständlich.

6

22.11.2006, 13:47

schwer verständlich, aber ich weiss was du meinst, weil ich meinen fehler schon vorher gesehen hab^^ char chZeichen wird doppelt ein wert zu gewiesen, und das geht schlecht^^ hab ja extra dafür char chzeich gemacht xDDD hauptsache es funktioniert jetzt und ich bin glücklich :D
-> ist nämlich mein längstes prog überhaupt^^ (jeder fängt mal kleine an!!)
trotzdem danke für deinen Hilfe

Gruss
Alex

Faule Socke

Community-Fossil

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

7

22.11.2006, 14:31

es ist mit sicherheit net wichtig aber du hast <string> zweimal "includiert"


mfg,

Faule Socke

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

8

22.11.2006, 18:33

Faule Socke
Das is definitiv nicht wichtig :p naja... zumindest kein Fehler

Zitat von »"DEATH"«

schwer verständlich, aber ich weiss was du meinst, weil ich meinen fehler schon vorher gesehen hab^^ char chZeichen wird doppelt ein wert zu gewiesen, und das geht schlecht^^

Also wenn jetzt alles geht is ja ok, aber es spricht eigentlich nichts dagegen, den Wert von chZeichen innerhalb vom Programm nochmal zu ändern.

Faule Socke

Community-Fossil

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

9

22.11.2006, 19:01

Noch was... ich kann mir zwar net vorstellen das es stimmt aber könnte es net sein das ios_base::out und ios::out zwei verscheidene werte sind?(versuch mal ios:out falls es verschiedene sind)

grek40
Ich wollte es ja nur anmerken!

EDIT:

DEATH
Kennst du das wort kommentare??(das mein ich ernst)

mfg,

Faule Socke[/b]

spacegaier

Alter Hase

Beiträge: 572

Beruf: Student

  • Private Nachricht senden

10

22.11.2006, 21:30

Und es wäre vielleicht hilfreich, die Variablen noch etwas deutlich zu benennen, denn chZeichen und chzeich sind recht ähnlich und sagen gar nichts über den Wert aus, den sie speichern. Hier wäre das z.B. besser:
chAktion_1 chAktion_2 oder was ähnlichs aus dem ersichtlich wird, dass hier die Eingabe des Nutzer drin steht und bei mehreren, wie bei dir auch noch eine Nummer oder sonst irgendwie kenntlich machen zu welcher Eingabe das gehört.

Das würde solche Fehler ausschließen (oder die Gefahr zumindest verringern). Ansonsten für den Anfang nicht schlecht (so zum Üben).

Werbeanzeige