Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » CLRSCR() - The Microsoft Way Problem

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
26.01.2008, 23:49 Uhr
~Tobias1991
Gast


Hallo, ich lerne seit kurzem erst c++ und bin auf die funktion clrscr gestoßen, doch leider mag sie bei mir nicht funktionieren. Ich weiß leider nicht warum. Wäre schön wenn mir ein Profi helfen könnte.


C++:
#include <iostream>
using namespace std;

void clrscr(void)
{
  COORD coordScreen = { 0, 0 };  // upper left corner
  DWORD cCharsWritten;
  DWORD dwConSize;
  HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
  CONSOLE_SCREEN_BUFFER_INFO  csbi;
    
  GetConsoleScreenBufferInfo(hCon, &csbi);
  dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
  // fill with spaces
  FillConsoleOutputCharacter(hCon, TEXT(' '), dwConSize, coordScreen, &cCharsWritten);
  GetConsoleScreenBufferInfo(hCon, &csbi);
  FillConsoleOutputAttribute(hCon, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten);
  // cursor to upper left corner
  SetConsoleCursorPosition(hCon, coordScreen);
}

int main()
{
    int pin = 7493;
    int placeholder_pin;
    
    int versuche = 0;
    
    bool failed = false;
    
    int Kontostand = 1250;
    
    do
    {
        if (versuche != 3)
        {
            cout << "Bitte geben Sie Ihren Pin ein: ";
            cin >> placeholder_pin;
        
            if (pin != placeholder_pin)
            {
                clrscr();
                versuche++;
                cout << "Der eingegebene Pin ist nicht korrekt!" << endl
                     << "Verbleibende Versuche: " << 3-versuche << endl;
            }
        }
        else
        {
            clrscr();
            cout << "Ihre Karte wurde einbehalten." << endl
                 << "Bitte kontaktieren Sie das Personal am Schalter";
            cin >> placeholder_pin;
            failed = true;
        }
    }
    while (failed != true);
}




Zitat:
6 CDokumente und Einstellungen\xXx\Desktop\bank.cpp `COORD' undeclared (first use this function)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.01.2008, 23:54 Uhr
0xdeadbeef
Gott
(Operator)


Wahrscheinlich musste windows.h einbinden oder sowas in der Art.

Am besten wäre deshalb, die clrscr-Funktion in eine eigene Übersetzungseinheit auszulagern - windows.h macht gerne Dinge kaputt; das ist ein ziemlich bösartiger Header.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
27.01.2008, 00:02 Uhr
~Tobias1991
Gast


Hallo,

mit windows.h funktioniert es...

danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
27.01.2008, 00:03 Uhr
~Tobias1991
Gast


Hallo, entschuldige wenn ich frage, aber wie kann ich denn einen Bestimmten Textteil in rot färben und evtl. noch zum blinken bringen in einer consolenanwendung? ich weiß das es mit gotoxy und textcolor geht, aber da fehlt mir wahrscheinlich auch schon wieder der richtige header.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
27.01.2008, 00:07 Uhr
0xdeadbeef
Gott
(Operator)


gotoxy und textcolor sind, wenn ich mich recht entsinne, in conio.h. Allerdings weiß ich nicht, wie kompatibel die mit den Windows-Mechanismen sind; und gerade bei blinkender Schrift solltest du dich möglichst zurückhalten - sowas kann unglaublich nervtötend sein.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
27.01.2008, 00:09 Uhr
~Tobias1991
Gast


Ich hab es so versucht:


C++:
#include <windows.h>
#include <conio.h>
#include <iostream>
using namespace std;

void clrscr(void)
{
  COORD coordScreen = { 0, 0 };  // upper left corner
  DWORD cCharsWritten;
  DWORD dwConSize;
  HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
  CONSOLE_SCREEN_BUFFER_INFO  csbi;
    
  GetConsoleScreenBufferInfo(hCon, &csbi);
  dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
  // fill with spaces
  FillConsoleOutputCharacter(hCon, TEXT(' '), dwConSize, coordScreen, &cCharsWritten);
  GetConsoleScreenBufferInfo(hCon, &csbi);
  FillConsoleOutputAttribute(hCon, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten);
  // cursor to upper left corner
  SetConsoleCursorPosition(hCon, coordScreen);
}

int main()
{
    int pin = 7493;
    int placeholder_pin;
    
    int versuche = 0;
    
    bool failed = false;
    
    int Kontostand = 1250;
    
    gotoxy(1,12);
    textcolor(BLUE);
    
    do
    {
        if (versuche != 3)
        {
            cout << "Bitte geben Sie Ihren Pin ein: ";
            cin >> placeholder_pin;
        
            if (pin != placeholder_pin)
            {
                clrscr();
                versuche++;
                cout << "Der eingegebene Pin ist nicht korrekt!" << endl
                     << "Verbleibende Versuche: " << 3-versuche << endl;
            }
        }
        else
        {
            clrscr();
            cout << "Ihre Karte wurde einbehalten." << endl
                 << "Bitte kontaktieren Sie das Personal am Schalter";
            cin >> placeholder_pin;
            failed = true;
        }
    }
    while (failed != true);
}



dann kommt aber:
Zitat:
35 CDokumente und Einstellungen\xXx\Desktop\bank.cpp `gotoxy' undeclared (first use this function)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
27.01.2008, 00:10 Uhr
~Tobias1991
Gast


Sorry der obige code ist falsch kopiert... fehlermeldung stimmt und code:


C++:
#include <windows.h>
#include <conio.h>
#include <iostream>
using namespace std;

void clrscr(void)
{
  COORD coordScreen = { 0, 0 };  // upper left corner
  DWORD cCharsWritten;
  DWORD dwConSize;
  HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
  CONSOLE_SCREEN_BUFFER_INFO  csbi;
    
  GetConsoleScreenBufferInfo(hCon, &csbi);
  dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
  // fill with spaces
  FillConsoleOutputCharacter(hCon, TEXT(' '), dwConSize, coordScreen, &cCharsWritten);
  GetConsoleScreenBufferInfo(hCon, &csbi);
  FillConsoleOutputAttribute(hCon, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten);
  // cursor to upper left corner
  SetConsoleCursorPosition(hCon, coordScreen);
}

int main()
{
    int pin = 7493;
    int placeholder_pin;
    
    int versuche = 0;
    
    bool failed = false;
    
    int Kontostand = 1250;
    
    gotoxy(1,12);
    textcolor(BLUE);
    
    do
    {
        if (versuche != 3)
        {
            cout << "Bitte geben Sie Ihren Pin ein: ";
            cin >> placeholder_pin;
        
            if (pin != placeholder_pin)
            {
                clrscr();
                versuche++;
                cout << "Der eingegebene Pin ist nicht korrekt!" << endl
                     << "Verbleibende Versuche: " << 3-versuche << endl;
            }
        }
        else
        {
            clrscr();
            cout << "Ihre Karte wurde einbehalten." << endl
                 << "Bitte kontaktieren Sie das Personal am Schalter";
            cin >> placeholder_pin;
            failed = true;
        }
    }
    while (failed != true);
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
27.01.2008, 11:38 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)



Zitat von 0xdeadbeef:
windows.h macht gerne Dinge kaputt; das ist ein ziemlich bösartiger Header.

öhhh lol?
Zum Beispiel?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: