如果该功能已经启动,如何停止?

时间:2020-07-02 09:08:45

标签: c++ function terminate

我对C ++还是很陌生,但仍有很多东西要学,这是我想为自己做的事情:

我尝试创建一个简单的程序,如果用户键入“ start”,它将播放音乐(音频文件),如果用户随时键入“ stop”,则停止音乐,并且使用 PlaySound (来自 WinMM.Lib )。我还想添加字幕以开始逐行显示与音乐aa同步的内容,并让用户随时输入开始/停止

我创建了void text(string x)函数,该函数将与void music()一起开始,但是我不知道当用户键入“ stop”时如何终止 text()函数,它只会停止音乐,但文字仍然显示。

注意:我使用timercpp代替了sleep()来让用户随时输入内容。另外,用户不必专门键入“停止”,也不能只是“开始”,而现在就这样。

#include <iostream>
#include <windows.h>
#include <string>
#include <stdlib.h>
#include <conio.h>
#include "timercpp.h"
using namespace std;
int music(string x);
void text(string x);
string x;
int main()
{
        do{
            cout<<"Type start / stop..."<<endl;
            cin>>x;
            music(x);
            text(x);
            cin.clear();
        }while(x!="quit");

}
int music(string x)
{
    system("cls");
    if(x=="start"){
    cout<<" Music ON "<<endl;
    PlaySound("*Path*/cpp/audio.wav", 0, SND_FILENAME|SND_LOOP|SND_ASYNC);
    return 0;
    }
    else{
    cout<<" MUSIC OFF..."<<endl;
    PlaySound(NULL, 0, SND_FILENAME);
    }
}
void text(string x)
{
    if(x=="start"){
    { 
    Timer t = Timer();
    t.setTimeout([&]() 
    {
    cout<<"// I got summer on my mind," << endl;}, 2500);
    t.setTimeout([&]() 
    {
    cout<<"/ Nowhere else though," << endl;}, 7000);
}

感谢您的帮助!

0 个答案:

没有答案