gpt4 book ai didi

c - Bison 弯曲。提供输入文件时出现意外输出

转载 作者:行者123 更新时间:2023-11-30 16:18:51 26 4
gpt4 key购买 nike

我正在尝试使用 flex 和 bison 创建一个计算器,它可以进行一组操作(结果分配给变量)。计算器使用存储器来存储这些变量。当我通过终端(标准输入键盘)进行此计算时,一切正常。但是,当我尝试使用文件时,内存中没有存储任何内容。

我有一个 .y 和 .l

这是我在 .y 中指定的内容。

extern FILE* yyin;

在主方法中:

yyin = fopen(argv[1], "rt");
yyparse ();
listTofile(list, argv[2]); //method that backups memory into a file
fclose(yyin);

例如,当我输入 A = 2 + 2 时,文件将存储名称变量和结果。当提示询问我指令时,这非常有效。但是,当提供文件时,解析器会检测所有内容但不存储任何内容(使用 flex -d 检查)

最佳答案

对于flex,一般需要调用yyrestart(yyin);切换到新的输入源来重置所有缓冲源。也就是说,如果您在 fopen 调用之前从未从 yyin 读取过任何内容,那么这应该不会有任何区别,因为不应该重置任何缓存的缓冲区内容。

关于c - Bison 弯曲。提供输入文件时出现意外输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55774916/

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