J'ai remarqué ce comportement étrange avec une concaténation en dépit du fait que strcmp
renvoie zéro, montrant les deux formes sont identiquescomportement de concaténation étrange chaîne C de
Le fichier d'options.h
est le suivant
struct options = {
std::string ctifile;
...
};
le fichier principal est en cours d'écriture de deux façons
Méthode 1
#include "options.h"
#include <string>
#include "cantera/IdealGasMix.h"
options opt = {
"mech/tot.cti"
};
IdealGasMix gas(opt.ctifile, ...);
Dans la deuxième méthode,
#include "options.h"
#include <string>
#include "cantera/IdealGasMix.h"
options opt = {
"tot.cti"
};
IdealGasMix gas(std::string("mech/") + opt.ctifile, ...);
Pour une raison quelconque, seule méthode 2 est incapable de trouver le fichier spécifié. Des pointeurs? (Jeu de mots)
[Aucune raison que cela ne fonctionne pas.] (Http://cpp.sh/3yln) – amanuel2
Quelque chose d'autre ne va pas, et ce que vous avez publié n'est pas clair. Vous devez trouver un [mcve] qui montre le problème. – MicroVirus
Travailler pour moi. Je soupçonne sur vous déclaration de l'argument de la fonction de gaz – Naidu