[C++]Menü mit Cursor in Konsole

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [C++]Menü mit Cursor in Konsole

      Huhu :)

      Ich versuche derzeit ein Menü in C++ zu programmieren, welches 3 Menüpunkte (0 = Start, 1 = Optionen und 2 = Beenden) enthält. Es wird per Pfeiltasten navigiert.
      Nur weiß ich nicht, wie ich das Menü anzeigen lassen kann, mitsamt Cursor usw., wenn ich es in die While-Schleife mit einbaue, funktioniert es zwar, jedoch spammt die ganze Konsole zu, da sich der Menütext ja immer wieder wiederholt. Mit system("CLS") würde das Menü sich löschen und neuschreiben und deswegen flackern. Mir gehen langsam die Ideen aus, obwohl ist bestimmt total offensichtlich ist.
      Hoffe ihr versteht wie ich das meine.

      Hier ist mein Quellcode:
      [C++] #include <cstdlib> #include <iostream> #include <conio.h> #include <ctype.h> - Pastebin.com

      Beispiel:

      Start:
      > Start < Optionen Beenden

      Bei Pfeiltaste-Rechts drücken:
      Start > Optionen < Beenden
      usw..

      Das mit den Pfeiltasten funktioniert bereits, nur das ausgeben will nicht so wie ich will!

      MfG
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • Ich schick erstmal was ich bisher habe. Noch nicht Perfekt, aber vllt kommst du dadurch ja selbst auf eine bessere Idee oder sowas.


      C-Quellcode

      1. #include <cstdlib>
      2. #include <iostream>
      3. #include <conio.h>
      4. #include <ctype.h>
      5. #include "windows.h"
      6. //#include "kampf.h"
      7. //#include "gotoxy.h"
      8. using namespace std;
      9. int main(){
      10. int mpunkt = 0; // Menüpunkt, welcher grade anvisiert ist
      11. system("color F");
      12. cout << "Start\tOptionen\tBeenden"; // Beispielmenü
      13. bool exit = false;
      14. while(!exit)
      15. {
      16. if(kbhit())
      17. {
      18. char c = getch();
      19. cout << mpunkt << endl;
      20. switch(c)
      21. {
      22. case 75:
      23. mpunkt = mpunkt - 1;
      24. if(mpunkt<0)
      25. {
      26. system("CLS");
      27. cout << ">Start<\tOptionen\tBeenden";
      28. mpunkt = 0;
      29. cout << mpunkt;
      30. }
      31. break;
      32. case 77:
      33. mpunkt = mpunkt + 1;
      34. if(mpunkt>1)
      35. {
      36. system("CLS");
      37. cout << "Start\t>Optionen<\tBeenden";
      38. mpunkt = 2;
      39. cout << mpunkt;
      40. }
      41. break;
      42. }
      43. }
      44. Sleep(10);
      45. }
      46. }
      Alles anzeigen
    • Habs umgeschrieben, funktioniert so 1A!
      Danke dir :)

      C-Quellcode

      1. #include <cstdlib>
      2. #include <iostream>
      3. #include <conio.h>
      4. #include <ctype.h>
      5. #include "windows.h"
      6. #include "kampf.h"
      7. using namespace std;
      8. int main(){
      9. int mpunkt = 0; // Menüpunkt, welcher grade anvisiert ist
      10. system("color F");
      11. cout << "Start\tOptionen\tBeenden"; // Beispielmenü
      12. bool exit = false;
      13. while(!exit)
      14. {
      15. if(kbhit())
      16. {
      17. char c = getch();
      18. switch(c)
      19. {
      20. case 75:
      21. mpunkt = mpunkt - 1;
      22. if(mpunkt<0)
      23. {
      24. mpunkt = 0;
      25. }
      26. if(mpunkt==0)
      27. {
      28. system("CLS");
      29. cout << ">Start<\tOptionen\tBeenden";
      30. }
      31. if(mpunkt==1)
      32. {
      33. system("CLS");
      34. cout << "Start\t>Optionen<\tBeenden";
      35. }
      36. if(mpunkt==2)
      37. {
      38. system("CLS");
      39. cout << "Start\tOptionen\t>Beenden<";
      40. }
      41. break;
      42. case 77:
      43. mpunkt = mpunkt + 1;
      44. if(mpunkt>2)
      45. {
      46. mpunkt = 2;
      47. }
      48. if(mpunkt==0)
      49. {
      50. system("CLS");
      51. cout << ">Start<\tOptionen\tBeenden";
      52. }
      53. if(mpunkt==1)
      54. {
      55. system("CLS");
      56. cout << "Start\t>Optionen<\tBeenden";
      57. }
      58. if(mpunkt==2)
      59. {
      60. system("CLS");
      61. cout << "Start\tOptionen\t>Beenden<";
      62. }
      63. break;
      64. }
      65. }
      66. }
      67. }
      Alles anzeigen