Newsgroup: it.comp.programmare.win32
Titolo: clrscr

Ciao a tutti,
Ho un problema:
Sto imparando a programmare in C e o uso come complilatore il Visual 
Studio 6.0 ma putroppo non c'è la  funzione clearscreen.
Come potrei fare?
Grazie in anticipo

ma putroppo non c'è la  funzione clearscreen.
se parli del comando dos per ripulire
lo schermo, si chiama cls
--
Ciao!
Skunkguru

SkunkGuru wrote:

Ho provato a lanciare l'help ma non trovo la funzione cls :-((((

Non esiste una funzione standard C/C++ che si chiami cls().
Esiste il comando "cls" di DOS (da lanciare da riga di comando).
La forma standard per invocarlo sarebbe:
system("cls");
E' comunque un metodo dipendente dalla piattaforma, tanto vale trovare
la funzione specifica messa a disposizione dal tuo compilatore.
Il metodo di cancellazione dello schermo non è portabile e quindi non
esiste una funzione standard per questo.

 la funzione specifica messa a disposizione dal tuo compilatore.
Ciao, anche a me risulta tutto quanto affermato da Andrea.
Forse potrebbe esserti utile questa routine per VC (ripeto, se ci 
dovesse essere una funzione gia' predefinita in VC, sarei curioso di 
saperlo :)
//-------------------------------------------------------
// Nome: clrscr()  
// Scopo: Cancella schermo
// Parametri:
//      -- hConsole [in] Handle della console da
//         cancellare
//-------------------------------------------------------
void clrscr( HANDLE hConsole = NULL )
{
    // Variabili
    BOOL ok;
    COORD home = {0, 0};
    CONSOLE_SCREEN_BUFFER_INFO consoleBufInfo;
    DWORD numChars;
    DWORD numCharsWritten;
    // Se console == NULL, usa default
    if ( hConsole == NULL )
        hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    // Richiedi dimensioni X x Y
    ok = GetConsoleScreenBufferInfo( hConsole, 
            &consoleBufInfo );
    _ASSERTE(ok);
    numChars = consoleBufInfo.dwSize.X * 
               consoleBufInfo.dwSize.Y;
    // Riempi di spazi
    ok = FillConsoleOutputCharacter( hConsole, 
            (TCHAR) ' ', numChars, home, 
            &numCharsWritten );
    _ASSERTE(ok); 
    // Richiedi attributi correnti
    ok = GetConsoleScreenBufferInfo( hConsole, 
        &consoleBufInfo );
    _ASSERTE(ok);
    // Imposta attributi
    ok = FillConsoleOutputAttribute( hConsole, 
            consoleBufInfo.wAttributes,
            numChars, home, &numCharsWritten );
    _ASSERTE(ok);
    // Rimetti cursore in (0,0)
    ok = SetConsoleCursorPosition( hConsole, home );
    _ASSERTE(ok);    
}
//-------------------------------------------------------
...spero sia utile
Bye
Dan

> Forse potrebbe esserti utile questa routine per VC...
Sě, questa č la via migliore. Io mi sono scritto una DLL in C che gestisce
tutte le funzioni per console, da ClrScr() a TextMode(24,43,50) a
ToggleFullScreen() per passare da GotoXY(), etc.. etc.. TextColor(), etc..
Input() , etc.. Se a qualcuno interessa. :-)
Mi aggancio al discorso per chiedere, esistono delle funzioni API per
conoscere se un programma č tipo "Console" o "GUI" ?
Grazie mille.
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Grazie mille.
Io non ne conosco... ma suppongo che ci sara' qualcosa...
Ciao,
Dan

 Come potrei fare?
vabbe', e che palle. Te':
HANDLE hCOut = CreateFile
(
 TEXT("CONOUT$"),
 GENERIC_READ | GENERIC_WRITE,
 FILE_SHARE_READ | FILE_SHARE_WRITE,
 NULL,
 OPEN_EXISTING,
 0,
 NULL
);
CONSOLE_SCREEN_BUFFER_INFO csbiOutInfo;
GetConsoleScreenBufferInfo(hCOut, &csbiOutInfo);
DWORD nCells = csbiOutInfo.dwSize.X * csbiOutInfo.dwSize.Y;
DWORD nUnused;
COORD coOrig;
coOrig.X = 0;
coOrig.Y = 0;
// azzera il contenuto
FillConsoleOutputCharacter
(
 hCOut,
 TEXT(' '),
 nCells,
 coOrig,
 &nUnused
);
// azzera i colori
FillConsoleOutputAttribute
(
 hCOut,
 csbiOutInfo.wAttributes,
 nCells,
 coOrig,
 &nUnused
);
// sposta il cursore in alto a sinistra
SetConsoleCursorPosition(hCOut, coOrig);
CloseHandle(hCOut);
-- 
  < 
http://www.reactos.com/
 >  Open source clone of Windows NT. Current
      Don't stand, REACT!      version 0.1.5. C, C++ and ASM developers
                               and beta testers are welcome!