0

我是吉拉 我尝试在 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

它工作正常。

我想问是否有人遇到过这种错误以及您是如何解决的。因为我遵循文档中提供的所有内容,所以我无法弄清楚这个错误的原因。

非常感谢您提前。

吉拉

4

0 回答 0