开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
1 Star 0 Fork 0

AimRT/cpptoml

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (1)
标签 (2)
master
v0.1.1
v0.1.0
master
分支 (1)
标签 (2)
master
v0.1.1
v0.1.0
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (1)
标签 (2)
master
v0.1.1
v0.1.0
cpptoml
/
examples
/
parse_stdin.cpp
cpptoml
/
examples
/
parse_stdin.cpp
parse_stdin.cpp 3.21 KB
一键复制 编辑 原始数据 按行查看 历史
Chase Geigle 提交于 2017年01月29日 12:14 +08:00 . Add Unicode escape sequence support (fixes #36).
#include "cpptoml.h"
#include <iostream>
#include <limits>
/**
* A visitor for toml objects that writes to an output stream in the JSON
* format that the toml-test suite expects.
*/
class toml_test_writer
{
public:
toml_test_writer(std::ostream& s) : stream_(s)
{
// nothing
}
void visit(const cpptoml::value<std::string>& v)
{
stream_ << "{\"type\":\"string\",\"value\":\""
<< cpptoml::toml_writer::escape_string(v.get()) << "\"}";
}
void visit(const cpptoml::value<int64_t>& v)
{
stream_ << "{\"type\":\"integer\",\"value\":\"" << v.get() << "\"}";
}
void visit(const cpptoml::value<double>& v)
{
stream_ << "{\"type\":\"float\",\"value\":\"" << v.get() << "\"}";
}
void visit(const cpptoml::value<cpptoml::local_date>& v)
{
stream_ << "{\"type\":\"local_date\",\"value\":\"" << v.get() << "\"}";
}
void visit(const cpptoml::value<cpptoml::local_time>& v)
{
stream_ << "{\"type\":\"local_time\",\"value\":\"" << v.get() << "\"}";
}
void visit(const cpptoml::value<cpptoml::local_datetime>& v)
{
stream_ << "{\"type\":\"local_datetime\",\"value\":\"" << v.get()
<< "\"}";
}
void visit(const cpptoml::value<cpptoml::offset_datetime>& v)
{
stream_ << "{\"type\":\"datetime\",\"value\":\"" << v.get() << "\"}";
}
void visit(const cpptoml::value<bool>& v)
{
stream_ << "{\"type\":\"bool\",\"value\":\"" << v << "\"}";
}
void visit(const cpptoml::array& arr)
{
stream_ << "{\"type\":\"array\",\"value\":[";
auto it = arr.get().begin();
while (it != arr.get().end())
{
(*it)->accept(*this);
if (++it != arr.get().end())
stream_ << ", ";
}
stream_ << "]}";
}
void visit(const cpptoml::table_array& tarr)
{
stream_ << "[";
auto arr = tarr.get();
auto ait = arr.begin();
while (ait != arr.end())
{
(*ait)->accept(*this);
if (++ait != arr.end())
stream_ << ", ";
}
stream_ << "]";
}
void visit(const cpptoml::table& t)
{
stream_ << "{";
auto it = t.begin();
while (it != t.end())
{
stream_ << '"' << cpptoml::toml_writer::escape_string(it->first)
<< "\":";
it->second->accept(*this);
if (++it != t.end())
stream_ << ", ";
}
stream_ << "}";
}
private:
std::ostream& stream_;
};
int main()
{
std::cout.precision(std::numeric_limits<double>::max_digits10);
cpptoml::parser p{std::cin};
try
{
std::shared_ptr<cpptoml::table> g = p.parse();
toml_test_writer writer{std::cout};
g->accept(writer);
std::cout << std::endl;
}
catch (const cpptoml::parse_exception& ex)
{
std::cerr << "Parsing failed: " << ex.what() << std::endl;
return 1;
}
catch (...)
{
std::cerr << "Something horrible happened!" << std::endl;
// return as if there was success so that toml-test will complain
return 0;
}
return 0;
}
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

暂无描述
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/AimRT/cpptoml.git
git@gitee.com:AimRT/cpptoml.git
AimRT
cpptoml
cpptoml
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /