-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;
}
}
だから問題は何ですか?説明のないコードダンプは誰にも役立たないでしょう。 – chrisaycock
あまりにも軽いので、valide-emailテストを改善してください。 –
コンパイラの警告のうち、理解しづらいものはありますか?それとも、「今日@正午」を電子メールアドレスとして検証できるかどうかですか? – Johnsyweb