gpt4 book ai didi

C++:传递给 C 运行时函数的参数无效

转载 作者:行者123 更新时间:2023-11-28 04:50:48 25 4
gpt4 key购买 nike

我正在尝试使用以下代码创建一个日志文件:

FILE* smartcutLogFile;

D1 = 0;
D2 = 0;
E2 = 0;
E3 = 0;
E4 = 0;
Z_EDGE = 0;

// save the detected values into the log file, and close it
smartcutLogFile = fopen ((QDateTime::currentDateTime().toString() + ".txt").toStdString().c_str() ,"w+t"); // get the datetime and append .txt at the end
std::cout<<(QDateTime::currentDateTime().toString("yyyy-MM-dd hh.mm.ss") + ".txt").toStdString().c_str()<<std::endl;
fprintf(smartcutLogFile, "D1: %f\n D2: %f\n E2: %f\n E3: %f\n E4: %f\n Z: %f\n", D1, D2, E2, E3, E4, Z_EDGE);
fclose(smartcutLogFile);

所有这些 double (E2、E3 等)实际上是我在 LineEdits 上看到的传感器测量值,所以一切正常。然而,以下代码不会创建任何文件或任何东西,它会打印文件名:

2018-01-15 12.21.50.txt

但它不会创建任何东西,而是提示以下错误数百次:

Invalid parameter passed to C runtime function.

我哪里做错了?

编辑:我在以下行收到错误:

smartcutLogFile =  fopen ((QDateTime::currentDateTime().toString() + ".txt").toStdString().c_str() ,"w+t"); // get the datetime and append .txt at the end

最佳答案

可能在将日期/时间转换为字符串的过程中发生了错误。转换的结果给你无效的文件名,这可能是 fopen 函数失败的原因。

这应该有效:

(QDateTime::currentDateTime().toString("yyyy-MM-dd h.mm.ss") + ".txt").toStdString()).c_str()

关于C++:传递给 C 运行时函数的参数无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48263083/

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