我正在尝试导入测试JSON文件并解析它。我一直得到错误的数据类型。 如何加载'const char'友好文件?
代码:
#include "include/rapidjson/document.h"
#include <iostream>
#include <cstring>
#include <string>
#include <fstream>
using namespace std;
using namespace rapidjson;
int main(void){
//std::ofstream outfile ("test.json");
std::fstream file = ("test.json");
for (int n=0; n<100; ++n)
{
file << n;
Document document;
document.Parse(file);
assert(document.HasMember("hello"));
assert(document["hello"].IsString());
printf("hello = %s\n", document["hello"].GetString());
outfile.flush();
//outfile.close();
}
}
错误:
error: conversion from 'const char [10]' to non-scalar type 'std::fstream {aka std::basic_fstream<char>}' requested
答案 0 :(得分:3)
尝试
std::fstream file("test.json");
至于这个
document.Parse(file);
Document::Parse()
需要const char*
,而您正尝试传递fstream
。也许您可以使用ParseStream()
代替。或者阅读文件中的所有内容并将其传递给Parse()
。