2017-04-13 2 views
0

Je résous un VRP avec SCIP et je souhaite exporter les résultats de l'optimisation dans un fichier texte. J'utilise le code suivant mais échoue lors de l'appel de la fonction SCIPwriteBestSol.Comment puis-je stocker les résultats dans un fichier texte?

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

'file2 = fopen ...', êtes-vous sûr de 'file2'? –

+1

Vous devriez vérifier les erreurs après l'ouverture du fichier. Aussi comment le code échoue? – Galik

+0

essayer de vérifier le retour de fopen. Il retournera un pointeur NULL s'il échoue puis vérifie juste si (fichier! = Nullptr) – RomMer

Répondre

0

vérifier la valeur de retour de (fopen)

comme manual dit fopen retourne un pointeur NULL si l'appel de fonction échoue

puis tout d'abord faire

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

RomMer J'ai fait ce que vous avez suggéré et la condition est remplie, mais le code continue d'échouer dans la fonction SCIPprintBestSol. Je jabr doute avec le composant FILE *, la fonction me donne une erreur de violation d'accès. – DHerl

2

Si l'appel suivant fonctionne (c'est-à-dire, imprime la solution à la console), alors votre problème vient des méthodes d'E/S. Si cela échoue également, vous devez vérifier votre statut SCIP, c'est-à-dire si vous avez une solution. Si cela ne fonctionne pas, je suggère d'écrire dans la liste de diffusion SCIP/signaler un bug.

SCIP_CALL(SCIPprintBestSol(scip, stdout, FALSE));