PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit den C++ Funktionen



PancakeBear
27.06.2010, 21:58
Hallo Leute!

Ich habe heute angefangen mit C++ Coding und komme hier nicht weiter:


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



using namespace std;


int Arbeiter;
int checker;
string username;
string password;


int main()
{



Arbeiter = 24;

system("title Administratorprogramm");
printf("Guten Tag!\n");
printf("Willkommen im Administratorprogramm!\n");
printf("Arbeiter = %d", Arbeiter);
printf("\n");
Sleep(3000);
system("cls");

void user_input();
{
checker = 0;
printf("Username:\n");
cout << endl;
cin >> username;
cin >> password;
if (username == "admin")
{
checker = checker + 1;

}


if(password == "12345")
{
checker = checker + 1;
}


if (checker = 2)
{
cout << "Erfolgreich eingeloggt!";
getchar();
}
else
{
system("cls");
cout << "Username/Passwort falsch" << endl;
cout << "Zurück zur Benutzereingabe..."<< endl;
Sleep(2000);
user_input();



}
}


Ist ein ganz einfacher Code der checken soll ob der Username und das Passwort richtig sind :)
Liegt es daran das ich die Funktion user_input falsch aufrufe, oder falsch erstellt habe? Oder sind da irgendwelche andere Fehler drin?

Vielen Dank ,

mfg Chillerz.

Apex
27.06.2010, 22:04
Hieß das nicht getch(); ?

PancakeBear
27.06.2010, 22:09
Danke für die Antwort :)

Also getchar(); müsste meiner Meinung nach richtig sein...

Gaara
27.06.2010, 22:22
du hast deine funktion in der main funktion deklariert. sowas geht nicht das müsste so aussehen



void user_input()
{
code....
}

int main()
{
...code....
}
außerdem hast du hinter void user_input() ein semikolon( ; ) was auch nicht sein darf.

auf weitere fehler hab ichs nicht geprüft.

dazu kommt dass du dir "checker" sparen kannst^^ besser wäre es wenn dus so machen würdest


if((benutzername == "admin") && (passwort == "12345"))
{

}

Sawyer
27.06.2010, 22:23
Du hast eine Funktion in eine andere geschachtelt und ein paar Unnötige Semikolons. Hier eine Überarbeitete Version:


/* main.cpp */
#include <iostream>
#include <windows.h>
#include <string>
using namespace std;

// Definition
void user_input();

// Variablen
int Arbeiter = 24;
int checker = 0;
string username;
string password;

int main()
{
system("title Administratorprogramm");
printf("Guten Tag!\n");
printf("Willkommen im Administratorprogramm!\n");
printf("Arbeiter = %d", Arbeiter);
printf("\n");
Sleep(3000);
system("cls");

// Aufruf der Passwortabfrage
user_input();
}

void user_input()
{
checker = 0;
printf("Username:\n");
cout << endl;
cin >> username;
cin >> password;

if (username == "admin")
{
checker += 1;
}

if(password == "12345")
{
checker += 1;
}

if (checker == 2)
{
cout << "Erfolgreich eingeloggt!";
getchar();
}
else
{
system("cls");
cout << "Username/Passwort falsch" << endl;
cout << "Zurück zur Benutzereingabe..."<< endl;
Sleep(2000);
user_input();
}
}
MfG, Sawyer

PancakeBear
27.06.2010, 22:25
Vielen Dank für die Antworten :)
Kann geclosed werden ,

mfg Chillerz.

0x30
27.06.2010, 22:33
system() zu benutzen ist sehr gefährlich... Vor allem wenn man nicht den Pfad mit angibt.

blackberry
27.06.2010, 22:55
Zudem ist es auch ziemlich schlechter Stil Veriablen als globale Variablen zu deklarieren.
Und das mit dem "checker" ist auch überflüssig, da man die Abfragen mit einem logischen und (&&) regeln könnte (was Gaare ja schon gesagt hat)...

Naja... um nicht weiter drauf rumzuhacken und um dem Wunsch des Threaderstellers nachzukommen:
/closed