2017-04-13 58 views
0

我正在用SCIP解决一个VRP,我希望将优化结果导出到文本文件中。我使用下面的代码,但调用SCIPwriteBestSol函数时失败。如何将结果存储到文本文件中?

FILE* file; 
file = fopen("Solution.sol", "w"); 
SCIP_CALL(SCIPprintBestSol(scip, file, FALSE)); 
fclose(file); 
+2

'file2 = fopen ...',关于'file2'吗? –

+1

打开文件后应检查错误。代码如何失败? – Galik

+0

尝试检查fopen的返回。它会返回一个NULL指针,如果它失败 然后检查是否(file!= nullptr) – RomMer

回答

0

检查fopen()函数

manual返回值说,如果函数调用失败

那么的fopen会返回一个空指针首先做

if ((file = fopen("Solution.sol", "w")) != nullptr) 
{ 
// do your stuff 
} 
+0

RomMer我按照你的建议做了,条件满足,但代码在SCIPprintBestSol函数中保持失败。我jabr怀疑FILE *组件,该函数给我一个访问冲突错误。 – DHerl

2

如果以下调用工作(即将解决方案打印到控制台),则问题来自I/O方法。如果它也失败了,你必须检查你的SCIP状态,即你是否有解决方案。如果这不起作用,我建议写信给SCIP邮件列表/报告一个错误。

SCIP_CALL(SCIPprintBestSol(scip, stdout, FALSE)); 
相关问题