C Programer  - 讨论区

标题:C++ 应用实例:文本读取和分析

2014年01月23日 星期四 15:13

此段代码是我用于分析一段文本并从中提取ed2k协议URL的实例,其中应用了文件读取、字符串分析等技术,并引用了Poco库的URI模块来进行URL Decode操作。

编写并调试完成这段代码后,我认为使用C++的开发效率也很不错,并不比PHP复杂很多。C++的标准库和Poco库的API都非常容易使用,C++11的新特性使得C++更是如虎添翼,大大提升了开发效率。

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
#include <string>
#include <fstream>
#include <array>
#include <Poco/URI.h>
 
using namespace Poco;
using namespace std;
 
int main(int argc,char **argv) {
    if(argc != 2) {
        cerr << "usage: " << argv[0] << " input_file" << endl;
        return -1;
    }
    string input_file=argv[1];
    ifstream ifs;
    ifs.open(input_file);
    if(!ifs.is_open()) {
        cerr << "open file: " << input_file << " error." << endl;
        return -2;
    }
    array<char,4096> line;
    while(!ifs.eof()) {
        line.fill(0);
        ifs.getline(line.data(),4095);
        //cout << line.data() << endl;
        string sline(line.data());
        auto p1=sline.find("ed2k://");
        if(p1 == string::npos) {
            continue;
        }
        string link=sline.substr(p1);
        //cout << link << endl;
        auto p2=link.find("|/'");
        if(p2 == string::npos) {
            continue;
        }
        link=link.substr(0,p2+2);
        //cout << link << endl;
        string declink;
        URI::decode(link,declink);
        cout << declink << endl;
    }
    ifs.close();
    return 0;
}

 

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号