C ++ Beep не работает

Я начинающий программист и пытаюсь сделать пианино на C ++, используя функцию Beep. проблема в том, что я не слышу звуки при нажатии клавиш. Вот мой код:

#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.

0

Решение

Возможно, на вашем компьютере нет динамика компьютера. Посмотрите на документы: https://msdn.microsoft.com/en-us/library/windows/desktop/ms679277(v=vs.85).aspx

2

Другие решения

Хотя это правда, что ваш компьютер может не иметь этих встроенных динамиков. Ваш код также застрял в бесконечном цикле.

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);
}
}
}
5

Большинство современных ПК не оснащены встроенным динамиком.

По вашим заявлениям о включении я вижу, что вы используете Windows. В Windows обычно используется системный звук сообщений по умолчанию («динг», который вы слышите, когда появляется диалоговое окно). Убедитесь, что у вас включены динамики, или, возможно, попробуйте другое решение, которое не использует звуковой сигнал.

2
По вопросам рекламы [email protected]