C ++哔声不起作用
Posted
技术标签:
【中文标题】C ++哔声不起作用【英文标题】:C++ Beep not working 【发布时间】:2015-08-16 03:31:36 【问题描述】:我是一名新手程序员,我正在尝试使用 Beep 函数用 C++ 制作钢琴。问题是,我在按键时听不到声音。这是我的代码:
#include <cstdlib>
#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <conio.h>
using namespace std;
int main()
bool ciclo = true;
char tecla = _getch();
while (ciclo);
if (tecla == 'd')
Beep(261, 100);
if (tecla == 'f')
Beep(293, 100);
if (tecla == 'g')
Beep(329, 100);
if (tecla == 'h')
Beep(349, 100);
if (tecla == 'j')
Beep(392, 100);
if (tecla == 'k')
Beep(440, 100);
if (tecla == 'l')
Beep(493, 100);
if (tecla == 'k')
Beep(523, 100);
if (tecla == 'q')
ciclo = false;
;
if (tecla == 'r')
Beep(277, 100);
if (tecla == 't')
Beep(312, 100);
if (tecla == 'u')
Beep(370, 100);
if (tecla == 'i')
Beep(415, 100);
if (tecla == 'o')
Beep(466, 100);
我真的找不到任何问题,因此我们将不胜感激。我正在 Visual Studio 2013 上编译。
【问题讨论】:
你用的是哪个编译器?while (ciclo);
是一个无限循环。程序永远不会越过这条线。
谢谢你,Igor,我明白了我的问题,谢谢。我曾经运行过另一个程序,它使用了 beep 功能并且它工作了,这就是为什么我发现它没有工作很奇怪。
【参考方案1】:
虽然您的计算机确实可能没有这些内置扬声器。您的代码也陷入了无限循环。
while (ciclo);
我建议你只要键不是 q 就循环,这样用户就可以退出了。
这是您的代码工作的示例。
#include <cstdlib>
#include <iostream>
#include <windows.h>
#include <conio.h>
using namespace std;
int main()
while (char tecla = _getch() != 'q')
if (tecla == 'd')
Beep(261, 100);
if (tecla == 'f')
Beep(293, 100);
if (tecla == 'g')
Beep(329, 100);
if (tecla == 'h')
Beep(349, 100);
if (tecla == 'j')
Beep(392, 100);
if (tecla == 'k')
Beep(440, 100);
if (tecla == 'l')
Beep(493, 100);
if (tecla == 'k')
Beep(523, 100);
if (tecla == 'r')
Beep(277, 100);
if (tecla == 't')
Beep(312, 100);
if (tecla == 'u')
Beep(370, 100);
if (tecla == 'i')
Beep(415, 100);
if (tecla == 'o')
Beep(466, 100);
【讨论】:
【参考方案2】:也许您的计算机没有 PC 扬声器。查看文档:https://msdn.microsoft.com/en-us/library/windows/desktop/ms679277(v=vs.85).aspx
【讨论】:
HAHAHAHAHA,我正想说...现代计算机并没有真正配备... '不工作,我不知道出了什么问题:) 其实,我的电脑确实有喇叭,我用过一次哔声,效果很好。这就是我问的原因【参考方案3】:大多数现代电脑都没有内置扬声器。
通过您的包含语句,我可以看到您使用的是 Windows。 Windows 通常使用系统的默认消息声音(出现对话框时您听到的“叮”声)。确保您的扬声器已打开,或者尝试其他不使用 Beep 的解决方案。
【讨论】:
以上是关于C ++哔声不起作用的主要内容,如果未能解决你的问题,请参考以下文章