gpt4 book ai didi

c++ - Qt 中的脚本不返回正确的值

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:26:42 24 4
gpt4 key购买 nike

我正在尝试使用 Qt 中的脚本,这是一个非常简单的代码。

QCoreApplication a(argc, argv);

double x;

cout<<"Please enter a number: ";
cin>>x;
QFile file("cube.js");
if(!file.open(QIODevice::ReadOnly))
abort();

QTextStream in(&file);
in.setCodec("UTF-8");
QString script=in.readAll();
file.close();
QScriptEngine interpreter;
QScriptValue operand(&interpreter,x);
interpreter.globalObject().setProperty("x",operand);
QScriptValue result=interpreter.evaluate(script);
cout<<"The result is "<<result.data().toInt32()<<endl;

return a.exec();

cube.js的内容只有一行:

return x*x*x;

我运行这个程序,但它总是返回零。有人能告诉我它有什么问题吗?文件内容正确读取。

最好的问候,

最佳答案

您正在 Javascript 全局级别调用 return,这是不允许的。您可以使用 QScriptEngine::hasUncaughtExceptionQScriptValue QScriptEngine::uncaughtException 来确定 javascript 代码中的错误。

此外,您正在调用用于存储内部数据的 result.data()。所以脚本应该是

x*x*x

打印输出:

cout<<"The result is "<<result.toInt32()<<endl;

关于c++ - Qt 中的脚本不返回正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6068623/

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