Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++, WinApi] Pętla for, a czyszczenie ekranu za pomocą WinApi

Ostatnio zmodyfikowano 2013-10-21 20:52
Autor Wiadomość
kubes22
Temat założony przez niniejszego użytkownika
[C++, WinApi] Pętla for, a czyszczenie ekranu za pomocą WinApi
» 2013-10-21 20:40:59
Witam. Mam problem z pętlą for. Mianowicie...
C/C++
#include <iostream>
#include <windows.h>
#include <conio.h>

void zamiataj( 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 );
}

void ShowMenu()
{
    Stars();
    cout << "\t\t\t     Konkurs Matematyczny" << endl;
    Stars();
    cout << "[1] Wejscie" << endl;
    cout << "[0] Wyjscie" << endl;
}

void Stars2()
{
    int j = 0;
    for( j = 0; j <= 79; j++ )
    {
        cout << "*";
        Sleep( 1 );
    }
}

void Stars()
{
    int i = 0;
    for( i = 0; i <= 79; i++ )
    {
        cout << "*";
        Sleep( 20 );
    }
}

using namespace std;

int main()
{
    int menu = 0;
    ShowMenu();
    cin >> menu;
    if( menu == '1' )
    {
        zamiataj();
        Stars2();
        cout << "\t\t\t\t Wyniki" << endl;
        getch();
        return 0;
       
    }
   
}
Program prawidłowo wywołuje funkcję ShowMenu(); jednakże Stars2(); po zamiataj(); już nie. Próbowałem wszystkiego, jednakże kiedy używam system("PAUSE"); to albo wywala mi błąd, że system nie jest zadeklarowane, albo u kolegi wykrywa wirusa.
P-94239
pekfos
» 2013-10-21 20:46:15
1 i '1' to różne wartości. Wczytujesz int, a nie char.

kiedy używam system("PAUSE"); to albo wywala mi błąd, że system nie jest zadeklarowane
Nic dziwnego. Nie załączyłeś <cstdlib>.

albo u kolegi wykrywa wirusa.
Nie powinno się używać system() do rzeczy tak banalnych, jak zatrzymanie programu. Między innymi dlatego.
P-94243
kubes22
Temat założony przez niniejszego użytkownika
» 2013-10-21 20:52:04
Nawet przy dołączeniu tej biblioteki wywala błąd :) A poza tym myślałem, że windows.h używa cstdlib... Kiedy robiłem coś na wzór gry ze zmienianymi kolorami, nawet bez dołączania cstdlib mogłem losować.

I teraz po usunięciu tego ifa jest wszystko dobrze :) THX wielkie
P-94249
« 1 »
  Strona 1 z 1