1

ファイルから電子メール アドレスを抽出し、それを別のファイルに入れるプログラムを作成する必要があります。プログラムに情報を他のファイルに入れる方法がわかりません。また、最初のファイルを作成する必要があったように、2 番目のファイルを作成する必要がありますか? これが私がこれまでに持っているものです:

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
char chr;

int main()
{
string mail;
ifstream inFile;                               //this is the file that we will get the information from
ofstream outfile;                              // this is the file that the data will be saved in 
inFile.open("mail.dat");                     // this will open the file with the original informations
outfile.open("addresses.dat");                // this will open the file where the output will be 
while (inFile)
{
    cin>>mail;
    mail.find('@')!=string::npos;             //this finds the email addresses

}



inFile.close();                               // this will close the file when we are done with it
outfile.close();



cin>>chr;
return 0;
}
4

4 に答える 4

0

メールアドレスは複雑になりがちです。すべてのインターネット電子メール ドメイン アドレスを見つける最初のアプローチでは、

name@sub.sub.sub.domain.tld

トップ レベル ドメイン (TLD) は、かなり広範な値のセットです (com、net、edu、gov、us、uk、le、ly、de、so、ru、...)。最近、IANA は TLD 値の制限を解除することを発表したので、すぐに新しい TLD (apple、ibm、dell、att、cocacola、shell など) が急増するでしょう。

名前の部分には、文字、数字、および特定の特殊文字を使用できます。

正規表現パターン マッチング ライブラリを使用すると、電子メール アドレスを抽出するのに役立つ場合があります。

ここに役立つ参考文献がいくつかあります。

ウィキペディアが提供する有効なメールアドレスの例を次に示します。

niceandsimple@example.com
very.common@example.com
a.little.lengthy.but.fine@dept.example.com
disposable.style.email.with+symbol@example.com
user@[IPv6:2001:db8:1ff::a0b:dbd0]
"much.more unusual"@example.com
"very.unusual.@.unusual.com"@example.com
postbox@com (top-level domains are valid hostnames)
!#$%&'*+-/=?^_`{}|~@example.org
"()<>[]:,;@\\\"!#$%&'*+-/=?^_`{}| ~.a"@example.org
 üñîçøðé@example.com (Unicode characters in local part)
et cetera

ファイルから 1 つ (または複数) の電子メール アドレスを抽出したら、各電子メール アドレスを出力ファイルに書き込みます。emaddr に有効なアドレスが含まれていると仮定します。

cout<<emaddr<<endl;  //std::cout, std::endl if you don't 'using namespace std'

忘れないように、他にもアドレス指定スキームがあります。

于 2013-10-16T00:08:23.977 に答える