使用Boost mmap读取文本文件

哈尼·格克(Hani Goc)

我正在读取以下文件:


File.txt

Y:\ Test \ DOCUMENTS \ DOCUMENTS \ Flux保证2 \ multi \ ACTEPROC_OK \ 018-1-R.xml Y:\ Test \ DOCUMENTS \ DOCUMENTS \ Flux保证2 \ multi \ ACTEPROC_OK \ A018-2-R.xml Y: \ Test \ DOCUMENTS \ DOCUMENTS \ Flux Assurance 2 \ multi \ ACTEPROC_OK \ 021-1-R.xml Y:\ Test \ DOCUMENTS \ DOCUMENTS \ Flux Assurance 2 \ multi \ ACTEPROC_OK \ A021-2-R.xml Y:\ Test \ DOCUMENTS \ DOCUMENTS \ Flux Assurance 2 \ multi \ ACTEPROC_OK \ 022-1-R.xml Y:\ Test \ DOCUMENTS \ DOCUMENTS \ Flux Assurance 2 \ multi \ ACTEPROC_OK \ 022-2-R.xml Y:\ Test \ DOCUMENTS \ DOCUMENTS \ Flux Assurance 2 \ multi \ ACTEPROC_OK \ 025-1-R.xml


源代码:

#include <iostream>
#include <vector>
#include <boost/iostreams/device/mapped_file.hpp>
#include <boost/iostreams/stream.hpp>

std::vector<string> readFile(string);

int main()
{
    std::vector<string> res = readFile("file.txt");
    return 0;
}

std::vector<string> readFile(string f)
{
    boost::iostreams::stream<boost::iostreams::mapped_file_source> str(f);
    std::vector<string> app;
    for(string x; str >> x;)
    {
        app.push_back(x);
    }
    return app;
}//end

问题:

由于通量保证2之间有一个空格,因此它将空格视为分隔符。

如何删除分隔符,或明确标识分隔符是什么?

看到

这与增强或内存映射无关。

首先

str.unsetf(std::ios::skipws); 

将防止空白用作定界符/跳过。

其次,我认为(您什么也没提及)您想按行阅读:

for(std::string x; std::getline(str, x, '\n');)
{
    app.push_back(x);
}

如您所见,您已经可以指定定界符。

最后,考虑使用解析器生成器。参见例如这里:

其中包含一个示例,该示例使用Boost Spirit从内存映射文件中进行解析。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Boost mmap读取文本文件

来自分类Dev

使用'/ n'从文本文件读取

来自分类Dev

使用Javascript读取文本文件

来自分类Dev

使用IAsyncEnumerable读取文本文件

来自分类Dev

使用fscanf()从文本文件读取

来自分类Dev

读取文本文件-使用Swift

来自分类Dev

使用python读取文本文件

来自分类Dev

使用Powershell读取文本文件并查找文本

来自分类Dev

使用pl / sql从文本文件读取文件

来自分类Dev

使用numpy从文本文件中读取文件

来自分类Dev

如何读取已在使用的文本文件(Windows C ++)

来自分类Dev

如何使用熊猫读取文本文件的键,值对?

来自分类Dev

在Swift中使用NSURL读取文本文件

来自分类Dev

使用Swift读取文本文件的Python方法

来自分类Dev

使用PHP读取部分文本文件

来自分类Dev

使用Javascript读取本地文本文件

来自分类Dev

使用循环JAVA读取文本文件

来自分类Dev

使用C#从文本文件读取

来自分类Dev

使用JavaCC从文本文件读取输入

来自分类Dev

使用正确的colClasses读取文本文件

来自分类Dev

如何使用python读取文本文件中的数字?

来自分类Dev

从文本文件读取,而不必使用readline()

来自分类Dev

使用scanf重新读取c中的文本文件

来自分类Dev

使用HashSet存储文本文件并从中读取

来自分类Dev

如何使用scala.js读取文本文件?

来自分类Dev

使用JS从文本文件读取变量

来自分类Dev

使用python读取文本文件数据

来自分类Dev

使用fscanf在C中逐行读取文本文件

来自分类Dev

如何使用PySpark读取文本文件并应用架构?