beep system



  • if (cin.fail()){
      cout << "An error occured!" << endl;
      cin.clear();
    }
    

    http://www.cppreference.com/cppio/index.html



  • thx it works but no it doesnt now the message comes but it loops in an error for some reson take a look:

    #include "stdafx.h"
    using namespace std;
    
    int main()
    {
    	cout << "-----------------------------------\n";
    	cout << "---- Tingle's Frequency Tester ----\n";
    	cout << "-----------------------------------\n\n";
    	int b;
    	int a;
    	b = 1;
    	while (b=1)
    	{
    			cout << "Enter a Frequency: ";
    			cin >> a;
    			if (a >= 0)
    			{
    			Beep (a,300);
    			cout << "\nBeep at " << a << " Frequency\n\n" << endl;
    			}
    			if (cin.fail())
    			{
    				cout << "Error, only numbers are legal\n\n" << endl;
    				cin.clear();
    			}
    	}
        return 0;
    }
    


  • ah nevermind i know why because it keeps the integer saved in a... how to i clear



  • #include <iostream>
    
    using namespace std;
    
    int main()
    {
    	cout << "-----------------------------------\n"
    	     << "---- Tingle's Frequency Tester ----\n"
    	     << "-----------------------------------\n\n";
    	int a;
    	while (true)
    	{
    			cout << "Enter a Frequency (-1 to quit): ";
    			cin >> a;
    			if (cin.fail())
    			{
    				cout << "Error, only numbers are legal\n\n" << endl;
    				cin.clear();
    			}
    			else if (a >= 0)
    			{
    			  Beep (a,300);
    			  cout << "\nBeep at " << a << " Frequency\n\n" << endl;
    			}
                            else
                            { 
                              if (a == -1) break;
                              cout << "Only numbers greater or equal than zero allowed\n\n" << endl;
                            }
    	}
    }
    


  • nope as soon as you typ in a number it loops/crashes



  • um i mean character



  • cin.ignore(); may help. Or cin.ignore(1000);

    Or something like string sth; cin >> sth; just to get rid of the rest. But it is unclean.



  • @tingle_: deutsch zu schreiben wurde wohl auf die Dauer langweilig? ; )



  • lol^^ 😛 sry^^ ich bin bilangual auf gewachsen ich merks meinstens garnicht vorallem im i-net hehehe



  • ^^ np - mein englisch is gerad noch gut genug um das zu verstehen ;o) aber in nem deutschen forum isses wahrscheinlich besser, deutsch zu schreiben (man bekommt schneller antworten etc ^^)



  • ^^, mal ne frage ich check das ganz net mit switch und so... könnt mir jemand ein template(skellet) her schreiben für das was ich machen will? das sind die tasten codes die töne erzeugen sollen:
    (alles nummpads ^^)
    0 = 48
    1 = 49
    2 = 50
    3 = 51
    4 = 52
    5 = 53
    6 = 54
    7 = 55
    8 = 56
    9 = 57



  • ah egal ich habs ^^ funtzt ja supper... nur ne frage gibt es ein command das die aktuele zeile gelöscht wird bzw das was angezeigt wird? weil 20x \b funtzt nur in so fern wie nix länger is als das vorherige



  • das was angezeigt wird

    versteh die frage nicht -.-

    std::cout << "text" << varialbe << /*...*/ <<  std::endl;
    

    geht zum anzeigen eigtl immer ganz gut fand ich ^^
    zum zeile löschen gibts mit sicherheit auch was - aber da müsstest du wahrscheinlich mal unter improved console gucken - hab ich kA von ^^



  • juhuu^^ hab das programm fertig sogar mitn intigierten lied "Popcorn" xD hier is download link und source:

    http://filebeam.de/temp/Tingles_Sound_Pad.exe

    #include "stdafx.h"
    using namespace std;
    
    #define C 65
    #define D 73
    #define E 82
    #define F 87
    #define G 99
    #define A 110
    #define H 123
    #define Cs 70
    #define Ds 78
    #define Fs 92
    #define Gs 104
    #define As 117
    
    int main()
    {
    	int a;
    	int b;
    	int c;
    	b = 150;
    	a = 1;
    	c = 1;
    	cout << "---------------------------" << endl;
    	cout << "---- Tingles Sound Pad ----" << endl;
    	cout << "---------- v3.05 ----------" << endl << endl;
    	cout << "Keys:" << endl << endl;
    	cout << "ESC - Exit" << endl << endl;
    	cout << "F1 - Short Tone" << endl;
    	cout << "F2 - Normal Tone" << endl;
    	cout << "F3 - Long Tone" << endl;
    	cout << "F4 - Very Long Tone" << endl;
    	cout << "F5 - Extra Long Tone" << endl << endl;
    	cout << "F6 - Octav 2 and 3" << endl;
    	cout << "F7 - Octav 4 and 5" << endl;
    	cout << "F8 - Octav 6 and 7" << endl << endl;
    	cout << "F9 - Play Popcorn Song" << endl << endl << endl << endl;
    	while (_kbhit() && a || 1)
    	{
    		switch(_getch ())
    		{
    		case 27:
    			cout << "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\bExiting... Good bye               ";
    			Sleep(2000);
    			return 0;
    			break;
    		case 59:
    			b = 50;
    			cout << "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\bSet to Short Tone               ";
    			break;
    		case 60:
    			b = 150;
    			cout << "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\bSet to Normal Tone               ";
    			break;
    		case 61:
    			b = 250;
    			cout << "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\bSet to Long Tone               ";
    			break;
    		case 62:
    			b = 350;
    			cout << "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\bSet to Very Long Tone               ";
    			break;
    		case 63:
    			b = 450;
    			cout << "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\bSet to Extra Long Tone               ";
    			break;
    		case 64:
    			c = 1;
    			cout << "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\bSet to Octav 2 and 3              ";
    			break;
    		case 65:
    			c = 4;
    			cout << "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\bSet to Octav 4 and 5               ";
    			break;
    		case 66:
    			c = 16;
    			cout << "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\bSet to Octav 6 and 7               ";
    			break;
    		case 67:
    			cout << "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\bPlaying Popcorn Song               ";
    				Beep(H*c,b);
    				Sleep(100);
    				Beep(A*c,b);
    				Sleep(100);
    				Beep(H*c,b);
    				Sleep(100);
    				Beep(Fs*c,b);
    				Sleep(100);
    				Beep(D*c,b);
    				Sleep(100);
    				Beep(Fs*c,b);
    				Sleep(100);
    				Beep(62*c,b);
    				Sleep(300);
    				Beep(H*c,b);
    				Sleep(100);
    				Beep(A*c,b);
    				Sleep(100);
    				Beep(H*c,b);
    				Sleep(100);
    				Beep(Fs*c,b);
    				Sleep(100);
    				Beep(D*c,b);
    				Sleep(100);
    				Beep(Fs*c,b);
    				Sleep(100);
    				Beep(62*c,b);
    				Sleep(300);
    				Beep(H*c,b);
    				Sleep(100);
    				Beep(Cs*2*c,b);
    				Sleep(100);
    				Beep(D*2*c,b);
    				Sleep(100);
    				Beep(Cs*2*c,b);
    				Sleep(100);
    				Beep(D*2*c,b);
    				Sleep(100);
    				Beep(H*c,b);
    				Sleep(100);
    				Beep(Cs*2*c,b);
    				Sleep(100);
    				Beep(H*c,b);
    				Sleep(100);
    				Beep(Cs*2*c,b);
    				Sleep(100);
    				Beep(A*c,b);
    				Sleep(100);
    				Beep(H*c,b);
    				Sleep(100);
    				Beep(A*c,b);
    				Sleep(100);
    				Beep(Fs*c,b);
    				Sleep(100);
    				Beep(H*c,b);
    				Sleep(100);
    				cout << "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\bPopcorn Song stoped               ";
    				break;
    		case 121:
    			Beep(65*c,b);
    			break;
    		case 115:
    			Beep(69*c,b);
    			break;
    		case 120:
    			Beep(73*c,b);
    			break;
    		case 100:
    			Beep(78*c,b);
    			break;
    		case 99:
    			Beep(82*c,b);
    			break;
    		case 118:
    			Beep(87*c,b);
    			break;
    		case 103:
    			Beep(92*c,b);
    			break;
    		case 98:
    			Beep(99*c,b);
    			break;
    		case 104:
    			Beep(104*c,b);
    			break;
    		case 110:
    			Beep(110*c,b);
    			break;
    		case 106:
    			Beep(117*c,b);
    			break;
    		case 109:
    			Beep(123*c,b);
    			break;
    		case 113:
    			Beep(130*c,b);
    			break;
    		case 50:
    			Beep(139*c,b);
    			break;
    		case 119:
    			Beep(147*c,b);
    			break;
    		case 51:
    			Beep(156*c,b);
    			break;
    		case 101:
    			Beep(165*c,b);
    			break;
    		case 114:
    			Beep(175*c,b);
    			break;
    		case 116:
    			Beep(196*c,b);
    			break;
    		case 54:
    			Beep(208*c,b);
    			break;
    		case 122:
    			Beep(220*c,b);
    			break;
    		case 55:
    			Beep(233*c,b);
    			break;
    		case 117:
    			Beep(247*c,b);
    			break;
    		case 53:
    			Beep(185*c,b);
    			break;
    		default:
    			cout << "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\bUnknow Key...               ";
    		}
    	}
    	return 0;
    }
    


  • #define C 65
    #define D 73
    #define E 82
    #define F 87
    #define G 99
    #define A 110
    #define H 123
    #define Cs 70
    #define Ds 78
    #define Fs 92
    #define Gs 104
    #define As 117
    //geht, aber besser:
    namespace Toene
    {
    const unsigned char C (65); //konstanter 8bit großer positiver int mit dem wert 65
    /*rest...*/
    }
    
    int a;
    int b;
    int c;
    b = 150;
    a = 1;
    c = 1;
    //geht zwar, aber:
    int a (1); //brauchst du gar nicht ^^
    int b (150);
    int c (1);
    
    cout << "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\bExiting... Good bye               ";
    return 0;
    //naja...
    cout << endl << "Exiting... Good bye";
    return 0;
    //geht wohl nicht?
    //ist auch KEINE gute lösung aber ich find sie besser, als die jetzige ^^:
    SYSTEM ("CLS"); //konsole ist leer, aber besser, du guckst ma bei improved console vorbei
    cout << "Exit... Bye";
    return 0;
    
    case 67:
                cout << "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\bPlaying Popcorn Song               ";
                    Beep(H*c,b);
                    Sleep(100);
    //...
                    Sleep(100);
                    cout << "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\bPopcorn Song stoped               ";
                    break;
    

    wie wärs statt dessen so?

    void PopcornSong (void)
    {
                    cout << "Playing Popcorn Song";
                    Beep(H*c,b);
                    Sleep(100);
    //...
                    Sleep(100);
                    cout << "Popcorn Song stopped"; //doppel p dachte ich ^^
    }
    
    case 67:
      PopcornSong ();
      break;
    

    ist doch ein wenig übersichtlicher, oder? ^^

    while (_kbhit() && a || 1)
    {
    //entweder, ich habs übersehen, oder du nutzt nirgendwo a...
    }
    //=>
    while (_kbhit ())
    {
    //...
    }
    

    noch bissl was allgemeines:

    Beep (D*2*c,b); //sieht zwar vll ne schlecht aus, aber ich fänds so besser:
    
    /*ich weiß jz nicht, was Beep als ersten Parameter erwartet - ich nehm mal DWORD an...*/
    
    const DWORD getTone (const unsigned char ton, const unsigned char oktave)
    /*
    könnte man auch noch in den Namespace Toene mit packen - oder sollte ^^
    ReturnValue: 1. Parameter von Beep
    ton: eben der ton an sich ^^
    oktave: relative Angabe zur "normalen" Oktave?
     (also 0 für normale Oktave, -1 für eine tiefer etc? kA, aber fände es so übersichtlicher)
    */
    {
    //ich kenn die rechnung nicht - hab keine Ahnung von allem, was mit Musik zu tun hat ; )
    }
    
    //also als Aufruf dann so:
    Beep (getTone (Toene::C, act_okt), laenge);
    //du nimmst also statt c den act_okt und b statt laenge
    


  • nuja ^^ funtzt ja alles :> man kann lustige melodien damit machen 😛 allerdings gibt es eine andere möglichkeit einen text bzw zeile zu ersetzen auser ganz viele \b zu benutzten 😛



  • Wie gesagt: Hier gibts nen forum namens improved console - frag dort mal nach ^^ Aber wäre es denn so schlimm, die Zeile dazulassen und dann einfach eine weiter unten zu schreiben? 😕

    Es funtzt zwar alles, aber ich find es nicht schön und doch ein wenig unübersichtlich 😛

    Nun ja - damit wars das wo erst mal ^^
    bb 🙂


Anmelden zum Antworten