如何使用 sting 参数调用函数
how to call a function with sting arguments
我正在处理的代码面临问题。我想每次都写入一个.txt文件,假设满足一个条件。但是,当我运行附加了此特定代码的模拟时,不会创建任何文件。我想要你对函数定义和我如何称呼它的意见。以下是函数的定义:
void writeToTxt(const std::string filename, int dir, double XPosTargetlane, double accelcurrent, double accelfollower, double accelaftproj, double acceltoldfollowerafterlanechange, double acceltargetcurrent, double acceltarget, int targetLane, double VelMobil, double currTime, int id_veh){
char buffer[500];
int n;
FILE* fMobil = fopen(filename.c_str(), "a");
if (fMobil != NULL){
//Initialize output file
n = sprintf(buffer, "n XPos accelc accelf accela accelto acceltar acceltarg dir tar Vel time Polfact=1.0 Δath=1.0 ");
fputs(buffer, fMobil);
//Store converted value to buffer and append to output file
n = sprintf(buffer, "n%.3ft", XPosTargetlane);
fputs(buffer, fMobil);
n = sprintf(buffer, "%.3ft", accelcurrent);
fputs(buffer, fMobil);
n = sprintf(buffer, "%.3ft", accelfollower);
fputs(buffer, fMobil);
n = sprintf(buffer, "%.3ft", accelaftproj);
fputs(buffer, fMobil);
n = sprintf(buffer, "%.3ft", acceltoldfollowerafterlanechange);
fputs(buffer, fMobil);
n = sprintf(buffer, "%.3ft", acceltargetcurrent); //an*
fputs(buffer, fMobil);
n = sprintf(buffer, "%.3ft", acceltarget); //an
fputs(buffer, fMobil);
n = sprintf(buffer, "%.3dt", dir);
fputs(buffer, fMobil);
n = sprintf(buffer, "%.3dt", targetLane);
fputs(buffer, fMobil);
n = sprintf(buffer, "%.3ft", VelMobil);
fputs(buffer, fMobil);
n = sprintf(buffer, "%.3ft", currTime);
fputs(buffer, fMobil);
n = sprintf(buffer, "n-----------------------------------------------------------------------------%d", id_veh);
fputs(buffer, fMobil);
fclose(fMobil);
}
}
我是这样称呼它的:
targetLane2 = numLane - 1;
XPosTargetlane2 = vehicle->getPositionInTargetlane(vehicle->getPosition(0), targetLane2);
vehicle->getUpDown(1, XPosTargetlane2, pVehUp, ShiftUp, pVehDw, ShiftDw);
if ((simVehicleParticular *)vehicle->getRealLeader(temp) != NULL){
accelcurrent2 = getIDMDeceleration((simVehicleParticular *)vehicle, (simVehicleParticular*)vehicle->getRealLeader(temp)); // ac
}
if ((simVehicleParticular *)vehicle->getRealFollower(temp) != NULL){
accelfollower2 = getIDMDeceleration((simVehicleParticular *)vehicle->getRealFollower(temp), (simVehicleParticular *)vehicle); //a0
}
if (pVehUp != NULL){
accelaftproj2 = getIDMDeceleration((simVehicleParticular *)vehicle, (simVehicleParticular *)pVehUp); //ac*
}
if ((simVehicleParticular *)vehicle->getRealFollower(temp) != NULL){
acceltoldfollowerafterlanechange2 = getIDMDeceleration((simVehicleParticular *)vehicle->getRealFollower(temp), (simVehicleParticular *)vehicle->getRealLeader(temp)); //a0*
}
if (pVehDw != NULL && pVehUp != NULL){
acceltarget2 = getIDMDeceleration((simVehicleParticular*)pVehDw, (simVehicleParticular*)pVehUp); //an
}
if (pVehDw != NULL){
acceltargetcurrent2 = getIDMDeceleration((simVehicleParticular*)pVehDw, (simVehicleParticular*)vehicle);
}
writeToTxt("Mobil114.txt", -1, XPosTargetlane2, accelcurrent2, accelfollower2, accelaftproj2, acceltoldfollowerafterlanechange2, acceltargetcurrent2, acceltarget2, targetLane2, VelMobil, currTime, id_veh);
你知道吗,为什么即使它正确构建,它也不会写入.txt文件?.我没有包含任何标题,因为没有意义。问题出在函数定义或我调用它时。谢谢。
首先,我会放置一些调试语句来确保代码实际上正在输入if
语句(如 CompuChip 建议的那样)。
其次,如果输入代码,我会确保检查工作目录(正如Joachim Pileborg建议的那样),但文件可能正在创建,但可能不是您期望的位置。
相关文章:
- 如何用参数值调用函数(仅在运行时已知)
- 从python中调用C++函数并获取返回值
- 当使用通配符和null指针调用函数时,对输出的说明
- 从R调用C++函数并对其进行集成时出错
- 使用QTreeView,如何通过调用函数只突出显示特定的行/列
- 如何在qt中从另一个类调用函数
- 在 COUT 语句中使用 COUT 调用函数
- 如何从线程中的不同模块调用函数?
- C++从函数指针数组调用函数
- 当 A 在 for 循环中调用函数 B 时,如何计算函数 A 的空间复杂度?
- 如何在 C/C++ 中从外部库调用函数
- 如何使用运算符在同一行中多次调用函数
- 是否可以创建一个从不同类调用函数的线程?
- 无法为类成员调用函数
- 如何从另一个标头 c++ 调用函数
- C++有什么方法可以在既不调用函数模板也不提供其模板参数的情况下引用函数模板?
- 如何只允许在调用函数 B 后调用函数 A?
- 我可以这样调用函数吗?
- 如何在 c++ 的类中递归调用函数方法?
- 为什么在指向对象的迭代器上调用函数不允许我更改对象本身?