Làm cách nào để chúng tôi triển khai clrscr()
? Googling nó tôi thấy rằng \x1b[2j
có thể được sử dụng để xóa màn hình nhưng làm thế nào để chúng tôi sử dụng nó?Làm cách nào để xóa màn hình bằng x1b [2j?
Trả lời
Thư viện C chuẩn không cung cấp cách xóa màn hình. Bạn cần một thư viện phụ thuộc vào hệ điều hành cho điều đó.
Theo hệ điều hành DOS và Windows, cho một chương trình đang chạy trong một hệ điều hành DOS hoặc Windows giao diện điều khiển, bạn có thể sử dụng các phần mở rộng hệ điều hành DOS/Windows được cung cấp trong thư viện C core xuất xưởng với hệ điều hành:
#include <conio.h>
clrscr();
Dưới hệ thống unix, bạn có thể sử dụng thư viện curses, được cung cấp với hệ điều hành. Các cổng của thư viện curses tồn tại cho hầu hết các hệ điều hành, bao gồm cả Windows, vì vậy đây là cách để đi vào một chương trình di động. Liên kết chương trình của bạn với -lcurses
và sử dụng
#include <curses.h>
erase();
Một số thiết bị đầu cuối và giả lập thiết bị đầu cuối thực hiện chức năng đặc biệt như thanh toán bù trừ màn hình khi họ nhận được một dãy thoát. Hầu hết các thiết bị đầu cuối tuân theo tiêu chuẩn ANSI định nghĩa một số chuỗi thoát; "\x1b[2J"
là một chuỗi như vậy và hiệu ứng của nó là xóa màn hình. Lưu ý số vốn J
. Trên thiết bị đầu cuối như vậy, fputs("\x1b[2J", stdout)
xóa màn hình. Đây là thực tế những gì các thư viện nguyền rủa không khi bạn gọi erase()
trên một thiết bị đầu cuối như vậy; thư viện curses bao gồm một cơ sở dữ liệu của các kiểu thiết bị đầu cuối và những gì thoát khỏi chuỗi để sử dụng trên các loại khác nhau.
Nếu bạn tự tin rằng là chuỗi điều khiển bạn cần phải sử dụng, sau đó:
#include <stdio.h>
int main(void)
{
fputs("\x1b[2j", stdout);
return(0);
}
này cố tình bỏ qua các dòng mới - nhưng bạn có thể được tốt hơn off với việc thêm một sau khi 'j'. Tuy nhiên, như Gilles chỉ ra trong số answer của mình, có nhiều cách khác để làm điều đó có thành tích so với giải pháp này.
doesnt work :(:( –
@fahad: nền tảng nào Nếu bạn đang trên DOS di sản đồng bằng, bạn cần phải có ANSI.SYS nạp cho thoát thiết bị đầu cuối để làm việc.Không chắc chắn về Windows.Trên Unix nó phải luôn luôn làm việc trừ khi bạn có một * thực sự * lẻ thiết bị đầu cuối với phi tiêu chuẩn thoát –
windows là nền tảng của tôi –
Trên Windows bạn có thể thử
#include <tchar.h>
#include <stdio.h>
#include <windows.h>
void clrscr(void)
{
HANDLE std_out = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO cbi;
COORD origin = {0,0};
int buf_length;
GetConsoleScreenBufferInfo(std_out,&cbi);
buf_length = cbi.dwSize.X*cbi.dwSize.Y;
FillConsoleOutputCharacter(std_out,0x20,buf_length,origin,0);
FillConsoleOutputAttribute(std_out,0x07,buf_length,origin,0);
}
int _tmain(int argc, wchar_t *argv[], wchar_t *envp[])
{
DWORD i;
_tprintf(TEXT("Clear screen probe...\n"));
clrscr();
return 0;
}
"\ x1b [H \ x1b [2J" hoạt động trên OSX.
- 1. Làm cách nào để xóa cuộn trong lệnh màn hình?
- 2. cách xóa màn hình trong python
- 3. Làm thế nào để vẽ ra màn hình bằng C++?
- 4. Làm cách nào để kiểm soát phiên màn hình trong phiên màn hình?
- 5. Xóa màn hình trong IPython
- 6. lệnh trong java để xóa màn hình
- 7. Làm cách nào để kiểm tra xem màn hình bảo vệ màn hình Linux có bị làm mờ màn hình
- 8. Làm cách nào để chia tỷ lệ hình ảnh thành toàn màn hình bằng JavaScript?
- 9. Làm cách nào để chụp ảnh màn hình/hình ảnh của trang web bằng Python?
- 10. Làm cách nào để chụp nhanh màn hình trong Java?
- 11. Màn hình GNU: Làm cách nào để tạo màn hình trong nền nếu màn hình không tồn tại?
- 12. Làm thế nào để tôi xóa màn hình tmux trong khi chỉnh sửa nhật ký?
- 13. Làm thế nào để xóa màn hình trong tương tác F # trong VS2010?
- 14. Làm cách nào để buộc QGLWidget cập nhật màn hình?
- 15. Làm cách nào để gán tên cho màn hình?
- 16. Làm cách nào để tạo màn hình tải trong Android?
- 17. Làm cách nào để vẽ trực tiếp trên màn hình?
- 18. Có cách nào để tự động chia màn hình trong Màn hình GNU không?
- 19. Làm cách nào để lấy trung tâm của màn hình bằng cocos2d?
- 20. Làm cách nào để chụp ảnh màn hình của iPhone/iPad bằng Xamarin.iOS (C#)?
- 21. Làm thế nào để lập trình một NSWindow toàn màn hình bằng cách sử dụng Lion?
- 22. Làm cách nào để phát hiện màn hình hiện tại bằng Java?
- 23. Làm cách nào để đặt kích thước cửa sổ/màn hình bằng xna?
- 24. Cách tìm kích thước màn hình của hai màn hình bằng cách sử dụng wx.displaySize()
- 25. Cách chụp màn hình để quay video bằng C# .Net?
- 26. Cách xóa tùy chọn Android khỏi màn hình
- 27. Làm thế nào để có được độ phân giải màn hình màn hình từ hWnd?
- 28. Làm thế nào để xóa giao diện điều khiển màn hình mysql trong cửa sổ?
- 29. OpenGL: Làm thế nào để xóa chỉ một phần của màn hình?
- 30. Cách tách màn hình bằng hai LinearLayouts bằng nhau?
tùy thuộc vào hệ điều hành và môi trường của bạn nói chung. –
Tôi tự hỏi nếu câu hỏi này có ý nghĩa gì cả. Hoặc bạn tạo một ứng dụng "toàn màn hình", sau đó bạn sẽ biết (nền tảng ... phụ thuộc) cách định vị con trỏ và hơn thế nữa, bao gồm cách xóa màn hình. Hoặc bạn tạo một tiện ích dòng cmd, có vẻ ổn nếu bạn chỉ sử dụng ngắt dòng và có thể backspaces hoặc CRs (cho số dòng vẽ lại trên cùng một vị trí ví dụ) ... – TheBlastOne