1

サンプルの C++ プログラムを作成しました...ここでは、システム コマンドを使用して、引数を指定して Python プログラムを呼び出しています...

system("python /home/rpms/a3/dsp/noise_rem_python.py /home/rpms/a3/dsp/files/p1f%d.txt",tid);

/home/rpms/a3/dsp/noise_rem_python.py is a program name

/home/rpms/a3/dsp/files/p1f%d.txtこのプログラムのパラメータです。

しかし、次のようなエラーが発生しています:

"/usr/include/stdlib.h: 関数 'void* writefile(void*)': /usr/include/stdlib.h:712: エラー: 関数 'int system(const char*)' writefile への引数が多すぎます.cpp:29: エラー: ファイルのこの時点で"

4

3 に答える 3

2

次の方法でも実行できます。

char command[200];    // 200 is just an example value that can hold the whole string
sprintf(command, "python /home/rpms/a3/dsp/noise_rem_python.py /home/rpms/a3/dsp/files/p1f%d.txt", tid);
system(command);

同じスタイルでやりたい場合。

于 2012-08-24T12:36:19.853 に答える
1

これ言ってみて:

#include <string>

system(("python /home/rpms/a3/dsp/noise_rem_python.py /home/rpms/a3/dsp/files/p1f" + std::to_string(tid) + ".txt").c_str());
于 2012-08-24T11:55:27.790 に答える
0

関数に渡す引数の最後を見てください

... ,tid);

文字列をフォーマットしようとしている場合は?引数として使用する前に実行してください。

于 2012-08-24T11:54:55.710 に答える