2011-10-18 4 views
-1

私はこのプログラムで私が で作業している電子メールアドレスの検証に問題があるのを助けてください。私の最後の2つは、[email protected]の電子メールと の電話番号をxxx-xxx-xxxx形式で有効にすることです。コードは次のとおりです。Cで電子メールを確認する際に問題が発生しました

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

これは私が問題を抱えているコードの一部です。

これは電子メールを検証する必要がある部分です。 checkemail

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; 
    } 
} 
+0

だから問題は何ですか?説明のないコードダンプは誰にも役立たないでしょう。 – chrisaycock

+0

あまりにも軽いので、valide-emailテストを改善してください。 –

+0

コンパイラの警告のうち、理解しづらいものはありますか?それとも、「今日@正午」を電子メールアドレスとして検証できるかどうかですか? – Johnsyweb

答えて

2

if文は、代入演算子、いない比較演算子を使用しています。

関連する問題