0

ジラです。「mol」形式の化学構造のファイルを「smiles」形式のファイルに変換するために、C ++でbabelを実装しようとしています。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