错误:从'const char [10]'转换为非标量类型'std :: fstream {aka std :: basic_fstream <char>}''</char>

时间:2014-10-24 21:18:52

标签: c++ json c++11 serialization

我正在尝试导入测试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

1 个答案:

答案 0 :(得分:3)

尝试

std::fstream file("test.json");

至于这个

document.Parse(file);

Document::Parse()需要const char*,而您正尝试传递fstream。也许您可以使用ParseStream()代替。或者阅读文件中的所有内容并将其传递给Parse()