Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ LLVM YAML API无法在YAML文件中读取;错误:不是序列“;_C++_Yaml_Runtime Error_Llvm - Fatal编程技术网

C++ LLVM YAML API无法在YAML文件中读取;错误:不是序列“;

C++ LLVM YAML API无法在YAML文件中读取;错误:不是序列“;,c++,yaml,runtime-error,llvm,C++,Yaml,Runtime Error,Llvm,这个问题是我上一个问题的延续 我正在从事一个使用LLVM YAML I/O库的项目。这是我遵循的文档/教程: 我创建了一个小程序,可以将yaml文件读入内存中的对象。然后它会打印这些对象。最后,它会将对象写入另一个输出文件 首先,它解析命令行参数。然后它创建输入读取器。然后它创建YAMLInput对象,用于在中读取*.YAML文件并对其进行解析。在解析步骤中,我遇到了一个错误。假设从*.yaml文件解析输入成功,数据将存储到DocType myDoc中。然后它将打印存储在该std::

这个问题是我上一个问题的延续

我正在从事一个使用LLVM YAML I/O库的项目。这是我遵循的文档/教程:

我创建了一个小程序,可以将yaml文件读入内存中的对象。然后它会打印这些对象。最后,它会将对象写入另一个输出文件

首先,它解析命令行参数。然后它创建输入
读取器
。然后它创建YAML
Input
对象,用于在中读取
*.YAML
文件并对其进行解析。在解析步骤中,我遇到了一个错误。假设从
*.yaml
文件解析输入成功,数据将存储到
DocType myDoc中。然后它将打印存储在该
std::vector
中的所有
Person
对象。重载的
运算符myDoc;
如果(错误代码errc=yin.error()){

errs()Amir Kirsh您能帮我解决这个问题吗?奇怪的是,错误出现在输入的第一行,它包含
--
,应该被解析为指令结束标记(启动文档内容),而不是像某些YAML实体那样可能会引发错误消息,如非序列。如果删除第一行,会发生什么情况?另一种可能是YAML解析器不支持CR LF结尾,它会。您也可以尝试将行结尾转换为LF,看看这是否有帮助。@flyx如果删除第一行,在t上会发生相同的错误下一行,现在是第一行,也是第一个字符。如果我使用
dos2unix
将行尾转换为LF,则会出现相同的错误。文档中显示错误会打印整行。您的错误不是这样的,因此它似乎是在处理输入API时出错,因此您无法获得完整的行。我真的不知道API,但示例似乎希望您使用
reader.get()->getBuffer()
,而不是
**reader
,所以可以尝试一下。您也可以将文件作为字符串文本放在那里,以检查它是否真的是输入错误。
---
- name:            Tom
  hat-size:        8
- name:            Dan
  hat-size:        7
- name:            Ken
...

cp output_file.yaml input_file.yaml
./yaml_project --input-file=input_file2.yaml --output-file=output_file.yaml
opening input file input_file2.yaml
reading input file input_file2.yaml
input_file2.yaml:1:1: error: not a sequence
-
^
error parsing YAML input from file input_file2.yaml
Invalid argument