0

一旦找到 [1],[2] ... [n],我一直想提取一行文本。但似乎我无法将一行存储到以 [1] 开头的字符中。

void ExtractWebContent::filterContent(){
    char str [10];
    ifstream reading;
    reading.open("file_Currency.txt");

    while (!reading.eof()){
        reading.get(str,10,'[1]');
        cout << str << endl;
    }
    cout << str;
    reading.close(); 
}

这是我要从中提取的文件..

标题:货币

          名称 价格变化 % Chg
       [80]美元/新加坡元
                  1.2606 -0.00 -0.13%

                                           美元/新加坡元 [81]USDSGD=X
       [82]欧元/新加坡元
                  1.5242 0.00 +0.11%

                                           欧元/新加坡元 [83]EURSGD=X

我正在使用 linux,C++ 编程。这是为了过滤从 HTML 文本文件中获得的图形。

任何帮助将不胜感激。谢谢!

4

1 回答 1

1

您遇到的最大错误是将单个字符视为字符串。第三个参数应该是单个字符分隔符,即分隔文件中记录的字符。如果在编译-Wall时添加编译器选项,您将收到有关单字符文字中包含多个字符的警告。

做你想做的事情的一种方法是使用正则表达式

于 2012-07-25T08:09:52.450 回答