错误:“初始化表达式列表被视为复合表达式”

时间:2010-11-26 01:09:13

标签: c++ function parameters declaration

我在编译基本密码保护文件程序的开头时遇到问题,我在第11行遇到了上述错误,(int login(用户名,密码))。不知道这里发生了什么,所以如果有人能够了解情况会很好。

#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;
}

4 个答案:

答案 0 :(得分:6)

int login(username,password);
{

应该是

int login(string username,string password)
{

答案 1 :(得分:3)

你可能不想修复功能声明

int login(username,password);

应改为

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

另外,作为样式注释,您可能不想声明全局变量,您可以将大多数变量的范围限制为main中的本地范围。

答案 2 :(得分:1)

您必须指定用户名和密码的数据类型。

答案 3 :(得分:0)

使用参数声明用户定义的函数时,还必须声明参数类型。

例如:

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