我是吉拉 我尝试在 C++ 中实现 babel,以便将 'mol' 格式的化学结构文件转换为 'smiles' 格式的文件。我编写的代码类似于 openbabel ( http://openbabel.org/docs/dev/UseTheLibrary/CppExamples.html ) 文档中提供的代码,如下所示。
#include <openbabel/obconversion.h>
#include <fstream>
int main(int argc, char **argv){
std::ifstream ifs("a.mol");
std::ofstream ofs("a.smi");
OpenBabel::OBConversion conv(&ifs, &ofs);
conv.setInAndOutFormats("MOL","SMI");
int n = conv.Convert();
std::out << n << " molecules are converted.\n"
return 1;
}
但它总是打印
0 molecules are converted.
并返回一个空文件“a.smi”。
但是,当我在命令行中实现 babel 时,例如
babel -imol a.mol -osmi
它工作正常。
我想问是否有人遇到过这种错误以及您是如何解决的。因为我遵循文档中提供的所有内容,所以我无法弄清楚这个错误的原因。
非常感谢您提前。
吉拉