Prob mit Funktion system("cls")
-
HI Leutz !
Wollte mal diese Funktion zum löschen des Bildschirm ausprobieren ....
Hab aber ein kleines Prob mit dieser Angelegenheit.
Kann es sein das die #define anweisung in der clear.h
irgendwo anders hinkommen muss ?hier meine Header:
//clear.h #ifndef _clear_ /* Standard error macro for reporting API errors */ #define PERR(bSuccess, api){if(!(bSuccess)) printf("%s:Error %d from %s \ on line %d\n", __FILE__, GetLastError(), api, __LINE__);} void cls( HANDLE hConsole ) { COORD coordScreen = { 0, 0 }; /* here's where we'll home the cursor */ BOOL bSuccess; DWORD cCharsWritten; CONSOLE_SCREEN_BUFFER_INFO csbi; /* to get buffer info */ DWORD dwConSize; /* number of character cells in the current buffer */ /* get the number of character cells in the current buffer */ bSuccess = GetConsoleScreenBufferInfo( hConsole, &csbi ); PERR( bSuccess, "GetConsoleScreenBufferInfo" ); dwConSize = csbi.dwSize.X * csbi.dwSize.Y; /* fill the entire screen with blanks */ bSuccess = FillConsoleOutputCharacter( hConsole, (TCHAR) ' ', dwConSize, coordScreen, &cCharsWritten ); PERR( bSuccess, "FillConsoleOutputCharacter" ); /* get the current text attribute */ bSuccess = GetConsoleScreenBufferInfo( hConsole, &csbi ); PERR( bSuccess, "ConsoleScreenBufferInfo" ); /* now set the buffer's attributes accordingly */ bSuccess = FillConsoleOutputAttribute( hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten ); PERR( bSuccess, "FillConsoleOutputAttribute" ); /* put the cursor at (0, 0) */ bSuccess = SetConsoleCursorPosition( hConsole, coordScreen ); PERR( bSuccess, "SetConsoleCursorPosition" ); return; } #endif
.cpp Datei:
#include <iostream> #include <stdlib.h> #include "clear.h" using namespace std; int main(){ system("cls"); return 0; }
Hier die Fehlermeldung des Compilers (VC++)
**
--------------------Configuration: clear screen - Win32 Debug--------------------
Compiling...
main.cpp
i:\programme\microsoft visual studio\myprojects\clear screen\clear.h(6) : error C2001: newline in constant
i:\programme\microsoft visual studio\myprojects\clear screen\clear.h(7) : error C2146: syntax error : missing ';' before identifier 'line'
i:\programme\microsoft visual studio\myprojects\clear screen\clear.h(7) : error C2501: 'on' : missing storage-class or type specifiers
i:\programme\microsoft visual studio\myprojects\clear screen\clear.h(7) : fatal error C1004: unexpected end of file found
Error executing cl.exe.main.obj - 4 error(s), 0 warning(s)
**THX für alle antworten!
-
Hi
Kann mir denn keiner helfen .... ?
Mit einem Tip oder Hinweis würde ich mich schon zu frieden gebenciao
-
Na wieso bindest du nicht einfach die <windows.h> ein?? Die <stdlib.h> und die "clear.h" kannst du dir sparen!!
-
system("cls") ist schlecht und sollte nicht benützt werden. Benütz die in der Headerdatei clear.h geschriebene cls-Funktion.
Zu den Fehlern:
- Mach das '\' am Ende vom Makro PERR raus und bring das ganze Makro in eine Zeile.
- Includiere die <windows.h>
Im Hauptprogramm dann statt system("cls") einfach clear(GetStdHandle(STD_OUTPUT_HANDLE))
MfG SideWinder
-
oh man ... da hab ich ja was vertüddelt ....
jo vielen dank an euch !mfg