簡體   English   中英

clrscr(); Code::Blocks 中的等價物

[英]clrscr(); equivalent in Code::Blocks

如何清除代碼塊中的輸出控制台? 為什么沒有 clrscr(); 在 Code::Blocks 中工作但在 Borland 中工作??

我已經嘗試過:

cout << "\x1b[2J\x1b[1;1H" << flush;
cls() ;

最簡單最直接的方法是通過system函數調用來完成:

#include <stdlib.h>

int main()
{
  system("cls");
}

如果您想以編程方式執行此操作, MSDN 在此處顯示了方法

請注意,C++ 沒有提供用於清除控制台的標准函數。 一些編譯器,如 borland,為了方便起見,將其作為非標准函數提供,但它不能在不同編譯器之間移植。

這實際上是一個非常簡單的問題。 您所要做的就是使用 printf。 就此而言,您甚至不需要 printf 或任何標題。

printf("\e[1;1H\e[2J");

\\e[1;1H 將屏幕設置為第一行和第一列。 2J 覆蓋當前屏幕上的所有字符。

你也可以使用這個:

write(0,"\e[1;1H\e[2J",12);

那你就不需要stdio.h了。

您可以使用操作系統命令清除控制台的內容。

#include<stdlib.h>
int main(){

system("cls");   //For windows
system("clear"); //For Linux

}

在包含 clrscr() 的頭文件中創建自己的函數並使用它。 例如:

#include <stdlib.h>
void clrscr()
{
   system("cls");
}

在“include”文件夾的路徑中將其另存為“ClearScreen.h”(例如 - C:\\Program Files (x86)\\CodeBlocks\\MinGW\\include)

編譯它。

現在在您的程序中使用它,例如:

#include <stdio.h>
#include <conio.h>
#include <ClearScreen.h>

main()
{
   clrscr();
   printf("\nHi");
   getch();
   return 0;
}

現在編譯並運行它。 我希望它有效....

我剛剛在互聯網上搜索。

不記得出處,但這應該是迄今為止最准確的。

#include<windows.h>    

void clear_screen ()
{
    DWORD n;                         /* Number of characters written */
    DWORD size;                      /* number of visible characters */
    COORD coord = {0};               /* Top left screen position */
    CONSOLE_SCREEN_BUFFER_INFO csbi;

    /* Get a handle to the console */
    HANDLE h = GetStdHandle ( STD_OUTPUT_HANDLE );

    GetConsoleScreenBufferInfo ( h, &csbi );

    /* Find the number of characters to overwrite */
    size = csbi.dwSize.X * csbi.dwSize.Y;

    /* Overwrite the screen buffer with whitespace */
    FillConsoleOutputCharacter ( h, TEXT ( ' ' ), size, coord, &n );
    GetConsoleScreenBufferInfo ( h, &csbi );
    FillConsoleOutputAttribute ( h, csbi.wAttributes, size, coord, &n );

    /* Reset the cursor to the top left position */
    SetConsoleCursorPosition ( h, coord );
}

現在,您所要做的就是調用clear_screen()

編輯:

剛剛找到來源: http : //faq.cprogramming.com/cgi-bin/smartfaq.cgi?answer=1031963460&id=1043284385

用於 Linux 的 conio.h

下載: http : //sourceforge.net/projects/conio4linux/?source=typ_redirect

復制到 /usr/include

樣品:

root@shu-GA-VT890P:/usr/include# ls | grep conio

:)

在 ubuntu 14.10 中通過 code::blocks 測試

#include <stdlib.h>

int main()
{
  system("cls");
}

或者你可以添加 system("cls"); 在您的主要功能中。 注意:它需要 stdlib.h 頭文件,所以不要忘記包含它。

在“MinGW\\include”文件夾中打開 conio.h 只需在最底部添加這些行並保存 conio.h

#include <stdlib.h>
void clrscr()
{
   system("cls");
}

這就是你的 clrscr(); 將工作

void function MyClearScreen()
{
 asm
    {
     mov ax,0600h;  
     mov bh,71h;    
     mov cx,0000h;  
     mov dx,184Fh;  
     int 10h;       
    };
};

int main()
{
 MyClearScreen();
}

試試這個(它比上面的短):

#include <windows.h>

void clrscr()/*Create funcion to clean screen.*/
{
    HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
    COORD coord = {0, 0};
    DWORD count;
    CONSOLE_SCREEN_BUFFER_INFO csbi;
    GetConsoleScreenBufferInfo(hStdOut, &csbi);
    FillConsoleOutputCharacter(hStdOut, ' ', csbi.dwSize.X * csbi.dwSize.Y, coord, &count);
    SetConsoleCursorPosition(hStdOut, coord);
}

來源: 實施了 clrscr 功能的程序

#include<conio.h>
#include<iostream.h>
int main()
{
//using namespace std
 clrscr();

}

//試試這個,讓我知道這是否有效

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM