gpt4 book ai didi

c++ - 从文件 C++ 加载原始字符串的更简洁的方法

转载 作者:太空狗 更新时间:2023-10-29 20:38:50 24 4
gpt4 key购买 nike

基本上我想做的是从一个文件中加载一个字符串,该字符串将被编码为 json。

我实现这个的方法对于应该是一个简单的操作来说是相当冗长的:

std::ifstream t(json_path);

std::string stringbuf = std::string(std::istreambuf_iterator<char>(t), std::istreambuf_iterator<char>());

boost::erase_all(stringbuf, "\t");

boost::erase_all(stringbuf, "\n");

boost::erase_all(stringbuf, " ");

是否有更简洁的方法将文本文件加载到字符串并去除特殊字符?

最佳答案

您还可以使用 std::copy_if 和一个插入迭代器来仅复制您想要的字符,而不是复制所有字符,打乱字节(例如,std::remove_if), 并删除你不想要的。

#include <algorithm>
#include <fstream>
#include <iostream>
#include <iterator>
#include <string>


int
main(int argc, char **argv)
{
std::string outbuf;
std::ifstream ins(argv[1]);
std::copy_if(std::istreambuf_iterator<char>(ins),
std::istreambuf_iterator<char>(),
std::back_insert_iterator<std::string>(outbuf),
[](char c) { return !std::isspace(c); });
std::cout << outbuf << std::endl;
return 0;
}

关于c++ - 从文件 C++ 加载原始字符串的更简洁的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30277282/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com