C++ 在c+中验证电子邮件时遇到问题+;

C++ 在c+中验证电子邮件时遇到问题+;,c++,visual-c++,C++,Visual C++,请帮助我,我在验证我使用的此程序中的电子邮件地址时遇到问题 我正在工作。我的最后两件事是使电子邮件有效一个月sam@this.com及 将电话号码转换为xxx xxx xxxx格式。代码如下: #include<iostream> using namespace std; class contact{ private: string lname; string fname; string address; string email; stri

请帮助我,我在验证我使用的此程序中的电子邮件地址时遇到问题 我正在工作。我的最后两件事是使电子邮件有效一个月sam@this.com及 将电话号码转换为xxx xxx xxxx格式。代码如下:

#include<iostream>
using namespace std;

class contact{
private:
    string lname;
    string fname;
    string address;
    string email;
    string phonenumber;//bool checkphonenumber(string phonenumber)

public:
    void output();
    void input();
    bool checkemail(string email);

    //constructor name has to be the same as class
    contact(string contact_lname,//parameters
            string contact_fname,
            string contact_address,
            string contact_phonenumber,
            string contact_email    ){

        lname = contact_lname;
        fname = contact_fname;
        address = contact_address;
        phonenumber =  contact_phonenumber;//bool checkphonenumber(string phonenumber)
        email = contact_email;
    }
    contact(){//set all variables to null
        lname = "";
        fname = "";
        address = "";
        phonenumber = "";
        email =  "";
    }
    //set
    void setlname(string contact_lname){lname = contact_lname;}
    void setfname(string contact_fname){fname = contact_fname;}
    void setAddress(string contact_address){address = contact_address;}
    //get
    string getlname(){return lname;}
    string getfname(){return fname;}
    string getaddress(){return address;}

};//end class
//to prevent overload run function outside
void contact::output()
{
    cout << "Contact name is: " << fname <<" "<< lname <<endl;
    cout << "Address is: " << address << endl;//address is not been filtered
    cout << "Email Address is: " << email << endl;


}
bool contact::checkemail(string email) {
    for(int a = 0; a < email.size(); a++) {
        if(email.at(a) = '@') return true;
    }
    return false;
}
void contact::input(){
    cout<<"enter last name: ";
    cin>>lname;
    cout<<"enter first name: ";
    cin>>fname;
    cout<<"Enter address: ";
    cin>>address;
    cout<<"enter email ";
    cin>>email;
    while (!checkemail(email)) {
        cout << "that is an invalid email address, re-entry email address." ;
        cin>>email;
    }

    cout<<"enter phone number ";
    cin>>phonenumber;

}
int main(){

    contact c;
    c.input();
    c.output();
    return 0;
}
#包括
使用名称空间std;
班级联系{
私人:
字符串名称;
字符串fname;
字符串地址;
字符串电子邮件;
string phonenumber;//bool checkphonenumber(string phonenumber)
公众:
无效输出();
无效输入();
bool checkemail(字符串电子邮件);
//构造函数名称必须与类相同
contact(字符串contact_lname,//参数
字符串联系人名称,
字符串联系人地址,
字符串联系人电话号码,
字符串联系人(电子邮件){
lname=联系人名称;
fname=联系人\ fname;
地址=联系地址;
phonenumber=联系人\u phonenumber;//bool checkphonenumber(字符串phonenumber)
电子邮件=联系电子邮件;
}
contact(){//将所有变量设置为null
lname=“”;
fname=“”;
地址=”;
电话号码=”;
电子邮件=”;
}
//设置
void setlname(字符串contact_lname){lname=contact_lname;}
void setfname(字符串contact_fname){fname=contact_fname;}
void setAddress(字符串contact_address){address=contact_address;}
//得到
字符串getlname(){return lname;}
字符串getfname(){return fname;}
字符串getaddress(){返回地址;}
};//末级
//为防止过载,请在外部运行功能
void contact::output()
{

cout如果
checkemail
中的
语句使用的是赋值运算符,而不是比较运算符。

那么到底是什么问题?没有解释的代码转储对任何人都没有帮助。请改进您的valide电子邮件测试,因为它太“轻”。您在理解哪一个编译器警告时有困难?还是您可以验证“today@noon“作为电子邮件地址?
bool contact::checkemail(string email) {
    for(int a = 0; a < email.size(); a++) {
        if(email.at(a) = '@') return true;
    }
    return false;
}
void contact::input(){
    cout<<"enter last name: ";
    cin>>lname;
    cout<<"enter first name: ";
    cin>>fname;
    cout<<"Enter address: ";
    cin>>address;
    cout<<"enter email ";
    cin>>email;
    while (!checkemail(email)) {
        cout << "that is an invalid email address, re-entry email address." ;
        cin>>email;
    }
}