如何解决将 QString 转换为 istream*
我必须制作一个计算器,并且需要为此使用解析器。 我的解析器输入是 std::istream* input ,我需要将我的 QString 从我的计算器应用程序转换为我的解析器的输入,以便它进行数学运算并返回解决方案。 你知道如何转换吗?感谢您的回答! :) 如果您想要解析器的完整代码,请在此处 -> https://www.stroustrup.com/dc_except.c
这是我通过控制台输入的主要内容
#include <strstream.h>
int main(int argc,char* argv[])
{
using namespace Driver;
switch (argc) {
case 1: // read from standard input
input = &cin;
break;
case 2: // read argument string
input = new istrstream(argv[1],strlen(argv[1]));
break;
default:
cerr << "too many arguments\n";
return 1;
}
// insert pre-defined names:
Symbol_table::table["pi"] = 3.1415926535897932385;
Symbol_table::table["e"] = 2.7182818284590452354;
while (*input) {
cout<<"new expression:\n";
try {
Lexer::get_token();
if (Lexer::curr_tok == Lexer::END) break;
if (Lexer::curr_tok == Lexer::PRINT) continue;
cout << Parser::expr(false) << '\n';
}
catch(Error::Zero_divide) {
cerr << "attempt to divide by zero\n";
skip();
}
catch(Error::Syntax_error e) {
cerr << "Syntax error:" << e.p << "\n";
skip();
}
}
if (input != &std::cin) delete input;
return no_of_errors;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。