Từ 1 tới 6 trên tổng số 6 kết quả

Đề tài: Lập trình C++ | Hàm tự tạo gotoxy(int, int ) và clrscr()

  1. #1
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Mặc định Lập trình C++ | Hàm tự tạo gotoxy(int, int ) và clrscr()

    Thư viện conio.h hoàn toàn không phải chuẩn của C++ và nó chỉ phụ thuộc vào compiler Borland C++. Đây là 2 hàm tự tạo dựa vào ANSCII code để viết lại 2 hàm thường dùng trong borland C++ là gotoxy và clrscr. Có thể dùng trên nhiều compiler của C++ như CodeBlock, gcc, dev-cpp, visual C++..

    gotoxy
    C++ Code:
    1. void gotoxy(int x, int y){
    2.   std::cout << "\033[" << y << ";" << x << "f" << std::flush;
    3. }

    clrscr
    C++ Code:
    1. void clrscr(){
    2.   std::cout << "\033[2J\033[1;1f" << std::flush;
    3. }

    Trick duy nhất trong cả 2 hàm là \033 trong mã octal là 33, và nó chính là ESC, muốn hiểu rõ thêm thì google for ASCII.

  2. #2
    Ngày gia nhập
    01 2007
    Nơi ở
    Somewhere I belong
    Bài viết
    168

    C++ Code:
    1. #include <windows.h>
    2.    void gotoxy(short x, short y)
    3.    {
    4.         HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
    5.         COORD pos;
    6.         pos.X = x-1;
    7.         pos.Y = y-1;
    8.         SetConsoleCursorPosition(hCon, pos);
    9.   }
    Đây là một cách tự tạo hàm gotoxy(x,y)

  3. #3
    Ngày gia nhập
    12 2007
    Bài viết
    6

    Trích dẫn Nguyên bản được gửi bởi rox_rook Xem bài viết
    Thư viện conio.h hoàn toàn không phải chuẩn của C++ và nó chỉ phụ thuộc vào compiler Borland C++. Đây là 2 hàm tự tạo dựa vào ANSCII code để viết lại 2 hàm thường dùng trong borland C++ là gotoxy và clrscr. Có thể dùng trên nhiều compiler của C++ như CodeBlock, gcc, dev-cpp, visual C++..

    gotoxy
    C++ Code:
    1. void gotoxy(int x, int y){
    2.   std::cout << "\033[" << y << ";" << x << "f" << std::flush;
    3. }

    clrscr
    C++ Code:
    1. void clrscr(){
    2.   std::cout << "\033[2J\033[1;1f" << std::flush;
    3. }

    Trick duy nhất trong cả 2 hàm là \033 trong mã octal là 33, và nó chính là ESC, muốn hiểu rõ thêm thì google for ASCII.
    Mình dùng thử thấy ko được hàm đó. Bạn có thể thư lại hàm clrscr();được ko.
    Mình dùng DevC. Sau khi in ra thì nó in ra nhưng ký tự mà bạn báo như [2J và [1;1f. Chỉ có cái \31 thì nó thành ký tự Esc

  4. #4
    Ngày gia nhập
    11 2007
    Bài viết
    1

    Cái hàm clrscr của bạn rox_rook dùng cách in chuỗi Escape ra màn hình. Nhưng có điều mình nghĩ là nó chỉ chạy được với các chương trình DOS thôi. Còn với các chương trình Win32 Console thì nó không thể xóa màn hình được.

  5. #5
    Ngày gia nhập
    09 2006
    Bài viết
    711

    Tại sao trên Win32 Console nó không xóa được vậy ? Thế còn trên Win64 thì sao ?

  6. #6
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    Mặc định Lập trình C++ | Hàm tự tạo gotoxy(int, int ) và clrscr()

    PHP Code:
    #include "windows.h"

    void gotoxy(short x,short y)
    {
            
    HANDLE hConsoleOutput;
            
    COORD Cursor_an_Pos = { x,y};
            
    hConsoleOutput GetStdHandle(STD_OUTPUT_HANDLE);
            
    SetConsoleCursorPosition(hConsoleOutput Cursor_an_Pos);

    đây là hàm tự tạo gotoxy

Các đề tài tương tự

  1. Lập trình C++ | clrscr, gotoxy, SetColor, SetBGColor, getch, ... trên VC++ và DEV-C
    Gửi bởi Kevin Hoang trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 12
    Bài viết cuối: 20-08-2013, 03:17 PM
  2. Báo lỗi lệnh clrscr() !
    Gửi bởi chocolate1 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 14
    Bài viết cuối: 07-03-2013, 04:25 PM
  3. Lập trình C không dùng đc hàm clrscr
    Gửi bởi salem001 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 09-04-2012, 08:33 PM
  4. Không sử dụng được câu lệnh clrscr và gotoxy
    Gửi bởi banhbaochay trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 21-08-2008, 11:53 AM
  5. Các hàm clrscr, gotoxy, textcolor, textBKcolor, ... trong lập trình C#
    Gửi bởi Kevin Hoang trong diễn đàn Tutorials và Thủ thuật lập trình C#, ASP.NET
    Trả lời: 11
    Bài viết cuối: 24-01-2008, 09:56 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn