Προς το περιεχόμενο

clscr <<==(υπαρχει??)


PATRINOS06

Προτεινόμενες αναρτήσεις

Δημοσ.

ρε παιδια μου ειπαν για την συναρτηση clscr η οποια καθαριζει την οθονη...

μπορει καποιος να μου πει αν υπαρχει πραγματικα και σε ποιο headerfile βρισκεται????ΕΠΕΙΓΕΙ!!!!!ευχαριστω πολυ ολους

 

ΥΓ.και αν οντως υπαρχει ποια εντολη περναω στο gcc για να την αναγνωρισει??

 

 

(σε ANSI C)

Δημοσ.

Αν εννοείς την clrscr, νομίζω είναι στη βιβλιοθήκη conio.h της Borland. Δε γνωρίζω να υπάρχει αντίστοιχη ευκολία στην ANSI C. Θα μπορούσες ίσως να γράψεις μία συνάρτηση που ανιχνεύει τύπο λειτουργικού συστήματος, και ανάλογα να εκτελεί system("cls") ή system("clear"). "Παπατζίδικο" και περιορίζεσαι μόνο σε DOS/Windows/Unix/Linux, αλλά άμα δουλεύει...

Υπάρχουν και άλλα "παπατζιλίκια" που μπορείς να κάνεις, πχ αν ξέρεις ότι η κονσόλα δε χρησιμοποιεί πάνω από X γραμμές, να τυπώσεις τόσες αλλαγές γραμμής ("\n").

Δημοσ.

ειναι ενα απλο γελοιο προγραμματακι απλα το ηθελα για ομορφια...δουλεψα με το system("clear") μια χαρα.μου ειπαν οτι βρισκεται στο windows.h παντως η εντολη..,...ευχαριστω πολυ!!!

 

οσο για το ΕΠΕΙΓΕΙ πιο πανω απλα πρεπει να το παραδωσω πολυ συντομα γι'αυτο (ειναι για μια εργασια στο πανεπιστημιο)

Δημοσ.

Το ωραίο πάντως με την clear είναι πως αν κάνεις scroll πως τα πάνω τα ξαναβλέπεις το τι είχες γράψει!!

Δημοσ.

Τέτοια εντολή (clscr) δυστυχώς από όσο γνωρίζω δεν υπάρχει άμεσα διαθέσιμη στο Windows Console API (windows.h -ελπίζω να μην αναφέρεσαι σε κάποιο Linux/Unix σύστημα γιατί τότε το post μου είναι άτοπο ;)).

 

Παρ' όλα αυτά μπορούμε να δημιουργήσουμε μια πολύ εύκολα:

 

>
BOOL  _clrscr(void)
{
  // Clear screen using Windows Console API -=directx=-
  HANDLE                     hCON = GetStdHandle(STD_OUTPUT_HANDLE);
  CONSOLE_SCREEN_BUFFER_INFO CSBI;
  COORD                      cOFFSET = { 0,0 };
  DWORD                      dwWRITTEN;

  if(hCON!=INVALID_HANDLE_VALUE)
   if(GetConsoleScreenBufferInfo(hCON,&CSBI))
    if(SetConsoleCursorPosition(hCON,cOFFSET))
     if(FillConsoleOutputCharacter(hCON,(TCHAR)' ',CSBI.dwSize.X*CSBI.dwSize.Y,cOFFSET,&dwWRITTEN))
      return TRUE;

  return FALSE;
}

 

Καταρχήν εντοπίζουμε το Handle (hCON) της κονσόλας μας (GetStdHandle).

Ύστερα με την βοήθεια της εντολής GetConsoleScreenBufferInfo μαθαίνουμε μεταξύ άλλων πληροφοριών, τις διαστάσεις της (CSBI.dwSize).

Ύστερα τοποθετούμε την θέση του κέρσορα (είσοδος) στην άνω αριστερή γωνία (0,0 -cOFFSET) της κονσόλας.

Τέλος γεμίζουμε με κενά (' ') ολόκληρη (CSBI.dwSize.X*CSBI.dwSize.Y) την "επιφάνεια" της αποθυκεύωντας (dwWRITTEN) συνάμα των αριθμό των κελιών (χαρακτήρων) που γράφτηκαν σε αυτή.

 

Υ.Γ.

Ο κώδικας είναι ενδεικτικός, έχει σχεδιαστεί σε C/C++ Builder 6 και μπορεί να περιέχει bugs.

 

2. Η "ANSI C" από όσο ξέρω δεν περιελάμβανε κάποιο specification για τον καθαρισμό της οθόνης (απλά έκανες πράγματι τόσα \n όσα ήταν απαραίτητα) συνεπώς σε εποχές DOS ο πιο συνηθισμένος τρόπος ήταν η κλήση του Video BIOS Interrupt 10h υπολειτουργίες AH=06/07 ή κάποια έτοιμη βοηθητική ρουτίνα του compiler μας όπως η clrscr στο conio.h για την Borland Turbo C++ ή η _clearscreen(_GCLEARSCREEN) στο graph.h για την Microsoft-C.

 

3. Σε περιβάλλον Windows Console η Borland εξακολουθεί να προσφέρει στο conio.h την clrscr η οποία φυσικά σήμερα χρησιμοποιεί το Windows Console API νομίζω ότι κάτι ανάλογα προσφέρει και η Microsoft.

Δημοσ.

ayto poy akoloythw egw einai to eksis

 

//instructions to the C/C++ preprocessor

//in case we work on different operating //systems and we need to use the clrscr //command.

#ifdef _WIN32

#define CLEARSCREEN "cls" // Windows

#else

#define CLEARSCREEN "clear" // Unix

#endif

 

kai kalw

system(CLEARSCREEN); gia na moy katharisei thn othonh...

Δημοσ.
ρε παιδια μου ειπαν για την συναρτηση clscr η οποια καθαριζει την οθονη...

μπορει καποιος να μου πει αν υπαρχει πραγματικα και σε ποιο headerfile βρισκεται????ΕΠΕΙΓΕΙ!!!!!ευχαριστω πολυ ολους

 

ΥΓ.και αν οντως υπαρχει ποια εντολη περναω στο gcc για να την αναγνωρισει??

 

 

(σε ANSI C)

 

Δεν υπάρχει σε ANSI C, πρέπει να καταφύγεις σε custom-ιές δυστυχώς.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...