Reputation: 215
I'm new to C++ and I am writing this program that should beep when I run it. I searched everywhere and I really feel like my code is correct, but I just don't hear the beep. (My speakers are on too) Please help!
#include<iostream>
using namespace std;
int main()
{
//please beep
cout << "\a";
cout << "other text" << endl;
return 0;
}
Upvotes: 1
Views: 1866
Reputation: 8587
Aside from the Standard C++ cout << '\a'
, On Windows, there is also a function called Beep()
.
Beep()
is written to pass the beep to the default sound device for the session. This is normally the sound card, except when run under Terminal Services, in which case the beep is rendered on the client.
Usage: Beep( Frequency_Herz , Duration_Milliseconds );
https://msdn.microsoft.com/en-us/library/windows/desktop/ms679277(v=vs.85).aspx
C++ Code For the Super Mario Bros Theme and Intro Song
#include <iostream>
#include <Windows.h>
int main(){
Beep (330,100);Sleep(100);
Beep (330,100);Sleep(300);
Beep (330,100);Sleep(300);
Beep (262,100);Sleep(100);
Beep (330,100);Sleep(300);
Beep (392,100);Sleep(700);
Beep (196,100);Sleep(700);
Beep (262,300);Sleep(300);
Beep (196,300);Sleep(300);
Beep (164,300);Sleep(300);
Beep (220,300);Sleep(100);
Beep (246,100);Sleep(300);
Beep (233,200);
Beep (220,100);Sleep(300);
Beep (196,100);Sleep(150);
Beep (330,100);Sleep(150);
Beep (392,100);Sleep(150);
Beep (440,100);Sleep(300);
Beep (349,100);Sleep(100);
Beep (392,100);Sleep(300);
Beep (330,100);Sleep(300);
Beep (262,100);Sleep(100);
Beep (294,100);Sleep(100);
Beep (247,100);Sleep(500);
Beep (262,300);Sleep(300);
Beep (196,300);Sleep(300);
Beep (164,300);Sleep(300);
Beep (220,300);Sleep(100);
Beep (246,100);Sleep(300);
Beep (233,200);
Beep (220,100);Sleep(300);
Beep (196,100);Sleep(150);
Beep (330,100);Sleep(150);
Beep (392,100);Sleep(150);
Beep (440,100);Sleep(300);
Beep (349,100);Sleep(100);
Beep (392,100);Sleep(300);
Beep (330,100);Sleep(300);
Beep (262,100);Sleep(100);
Beep (294,100);Sleep(100);
Beep (247,100);Sleep(900);
Beep (392,100);Sleep(100);
Beep (370,100);Sleep(100);
Beep (349,100);Sleep(100);
Beep (311,100);Sleep(300);
Beep (330,100);Sleep(300);
Beep (207,100);Sleep(100);
Beep (220,100);Sleep(100);
Beep (262,100);Sleep(300);
Beep (220,100);Sleep(100);
Beep (262,100);Sleep(100);
Beep (294,100);Sleep(500);
Beep (392,100);Sleep(100);
Beep (370,100);Sleep(100);
Beep (349,100);Sleep(100);
Beep (311,100);Sleep(300);
Beep (330,100);Sleep(300);
Beep (523,100);Sleep(300);
Beep (523,100);Sleep(100);
Beep (523,100);Sleep(1100);
Beep (392,100);Sleep(100);
Beep (370,100);Sleep(100);
Beep (349,100);Sleep(100);
Beep (311,100);Sleep(300);
Beep (330,100);Sleep(300);
Beep (207,100);Sleep(100);
Beep (220,100);Sleep(100);
Beep (262,100);Sleep(300);
Beep (220,100);Sleep(100);
Beep (262,100);Sleep(100);
Beep (294,100);Sleep(500);
Beep (311,300);Sleep(300);
Beep (296,300);Sleep(300);
Beep (262,300);Sleep(1300);
Beep (262,100);Sleep(100);
Beep (262,100);Sleep(300);
Beep (262,100);Sleep(300);
Beep (262,100);Sleep(100);
Beep (294,100);Sleep(300);
Beep (330,200);Sleep(50);
Beep (262,200);Sleep(50);
Beep (220,200);Sleep(50);
Beep (196,100);Sleep(700);
Beep (262,100);Sleep(100);
Beep (262,100);Sleep(300);
Beep (262,100);Sleep(300);
Beep (262,100);Sleep(100);
Beep (294,100);Sleep(100);
Beep (330,100);Sleep(700);
Beep (440,100);Sleep(300);
Beep (392,100);Sleep(500);
Beep (262,100);Sleep(100);
Beep (262,100);Sleep(300);
Beep (262,100);Sleep(300);
Beep (262,100);Sleep(100);
Beep (294,100);Sleep(300);
Beep (330,200);Sleep(50);
Beep (262,200);Sleep(50);
Beep (220,200);Sleep(50);
Beep (196,100);Sleep(700);
/*Intro*/
Beep (330,100);Sleep(100);
Beep (330,100);Sleep(300);
Beep (330,100);Sleep(300);
Beep (262,100);Sleep(100);
Beep (330,100);Sleep(300);
Beep (392,100);Sleep(700);
Beep (196,100);Sleep(700);
Beep (196,100);Sleep(125);
Beep (262,100);Sleep(125);
Beep (330,100);Sleep(125);
Beep (392,100);Sleep(125);
Beep (523,100);Sleep(125);
Beep (660,100);Sleep(125);
Beep (784,100);Sleep(575);
Beep (660,100);Sleep(575);
Beep (207,100);Sleep(125);
Beep (262,100);Sleep(125);
Beep (311,100);Sleep(125);
Beep (415,100);Sleep(125);
Beep (523,100);Sleep(125);
Beep (622,100);Sleep(125);
Beep (830,100);Sleep(575);
Beep (622,100);Sleep(575);
Beep (233,100);Sleep(125);
Beep (294,100);Sleep(125);
Beep (349,100);Sleep(125);
Beep (466,100);Sleep(125);
Beep (587,100);Sleep(125);
Beep (698,100);Sleep(125);
Beep (932,100);Sleep(575);
Beep (932,100);Sleep(125);
Beep (932,100);Sleep(125);
Beep (932,100);Sleep(125);
Beep (1046,675);
return 0;
}
Upvotes: 1
Reputation: 1
If writing a '\a'
(aka the BEL
character according the ASCII table) produces a sound or not, depends on the particular terminal implementation.
Writing that character to the console doesn't guarantee to produce an audible signal. Some terminals might ring a bell, others may flash for a second, else ones may completely ignore it.
Well, from other answers there seem to be situations, where the terminal is closed prior the audible signal is applied.
Using some mechanism, to keep your application/terminal left open long enough by using some blocking operation like cin.get()
before your application exits might help.
Upvotes: 5
Reputation: 4561
This is dependent on the terminal.
Similar questions:
https://apple.stackexchange.com/questions/162632/terminal-not-beeping-on-bell-character
https://unix.stackexchange.com/questions/1974/how-do-i-make-my-pc-speaker-beep
Ultimately, it is up to your terminal to produce the beep sound. The same code run in different environments may behave differently.
Upvotes: 4