2010-11-26 22 views
3

Je rencontre un problème de compilation des débuts d'un programme de base protégé par mot de passe, j'obtiens l'erreur ci-dessus sur la ligne 11, (int login (nom d'utilisateur, mot de passe)). Pas sûr de ce qui se passe ici, donc ce serait bien si quelqu'un pouvait faire la lumière sur la situation.erreur: "liste d'expression initializer traitée comme expression composée"

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

using namespace std; 

int i,passcount,asterisks; 
char replace, value, newchar; 
string username,password,storedUsername,storedPassword; 

int login(username,password); 
{ 
    if (username==storedUsername) 
    { 
     if (password==storedPassword) 
     cout<<"Win!"; 
     else 
     cout<<"Username correct, password incorrect." 
    } 
    else cout<<"Lose. Wrong username and password."; 
} 

int main() 
{ 
    cout<<"Username: "; 
    cin>>username; 
    cout<<"Password: "; 
    do 
    { 
    newchar = getch(); 
    if (newchar==13)break; 
    for (passcount>0;asterisks==passcount;asterisks++)cout<<"*"; 
    password = password + newchar; 
    passcount++; 
    } while (passcount!=10); 
    ifstream grabpass("passwords.txt") 
    grabpass>>storedpass; 
    grabpass.close(); 
    login(username,password); 

    return 0; 
} 

Répondre

6
int login(username,password); 
{ 

devrait être

int login(string username,string password) 
{ 
+0

Aha! Il a été compilé correctement, merci pour votre aide. –

0

Lorsque vous déclarez une fonction définie par l'utilisateur avec des paramètres, vous devez déclarer les types de paramètres ainsi.

Par exemple:

int foo(int parameter) 
{ 
    return parameter + 1; 
} 
3

Vous peut wan't de fixer la déclaration de fonction

int login(username,password); 

devrait être changé pour

int login(const string& username,const string& password); 

également comme une note de style, vous ne pouvez pas voulez déclarer la variable globale, vous pouvez limiter la portée de la plupart de vos variables à la portée locale dans main.

1

Vous devez spécifier les types de données de nom d'utilisateur et mot de passe.