【问题标题】:How to read a text file in a specific format c++如何读取特定格式的文本文件 c++
【发布时间】:2018-05-09 03:08:33
【问题描述】:

我正在逐字阅读文件,我想首先通过将所有字符转换为小写并删除除标点符号之外的所有非字母字符来预处理单词:连字符 (-) 和撇号 ('),然后相应地显示。我已完成将单词转换为lowercase,但现在我需要删除除连字符(-)和撇号(')之外的非字母字符。我不知道该怎么做。有人能解决这个问题吗?

void WordStats::ReadTxtFile()
{
    std::ifstream ifile(Filename);
    if(!ifile)
    {
        std::cerr << "Error Opening file " << Filename << std::endl;
        exit(1);
    }

    for (std::string word; ifile >> word; )
    {
        transform (word.begin(), word.end(), word.begin(), ::tolower);
        WordMap & Words = (Dictionary.count(word) ? KnownWords : 
        UnknownWords);
        Words[word].push_back(ifile.tellg()); 
    }

    std::cout << KnownWords.size() << " known words read." << std::endl;
    std::cout << UnknownWords.size() << " unknown words read." << std::endl;
}

【问题讨论】:

    标签: c++ stl formatting string-formatting read-write


    【解决方案1】:

    你可以使用 std::remove_if

    word.erase(std::remove_if(word.begin(), word.end(), [](char c)
    {
        return (c < 'a' || c > 'z') && c != '\'' && c != '-';
    }),  word.end());
    

    【讨论】:

      猜你喜欢
      • 2023-03-04
      • 2019-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-25
      • 2017-05-19
      • 1970-01-01
      相关资源
      最近更新 更多