タイトルが示すように、関数が終了する前に関数が実行されるという問題があります。これは、私のプログラムの流れを台無しにしているため、問題です。私の main() 関数は次のようになります。
int main()
{
FilePath1();
FilePath2();
VideoConfig1();
VideoConfig2();
VideoRecord();
return 0;
}
FilePath 関数は次のようになります。
void FilePath1()
{
cout << "Please enter the full filepath for where you want to save the first video: ";
cin >> filepath1;
cin.ignore();
}
問題は、VideoConfig1() が FilePath1() の直後に、FilePath2() と同時に開始されることです。なぜこれが起こるのか誰にも分かりますか?
VideoConfig1() の初期化として waitKey() を使用してみましたが、効果がありませんでした。
編集:
プログラムは次のように動作するはずです。
- FilePath1() を実行
- video1 を保存するためのファイルパスをユーザーに入力してもらいます
- Filepath2() を実行
- 保存する video2 のファイルパスをユーザーに入力してもらいます
- VideoConfig1() を実行します
- VideoConfig2() を実行します
- VideoRecord() を実行
2 つの FilePath プログラムはターミナルで実行され、他のプログラムはそれぞれのビデオ ウィンドウを開きます。プログラムが現在行っていることは次のとおりです。
- FilePath1() を実行
- video1 を保存するためのファイルパスをユーザーに入力してもらいます
- Filepath2() と VideoConfig1() を実行します
- 保存する video2 のファイルパスをユーザーに入力してもらいます
- VideoConfig1 が完了するまでに FilePath2 が完了していない場合、プログラム全体がクラッシュします。
- VideoConfig2() を実行します
- VideoRecord() を実行