c語言控制台清屏
① c語言 清屏函數
#include <stdio.h>
#include <windows.h>
printf("請輸入游標位置(x,y)用逗號隔開/n");
scanf("%d,%d",&x,&y);
GoToXY(x,y);
printf("x=%d,y=%d",x,y);
scanf("%d",&x);}
void GoToXY(int x, int y)
{COORD pos = {x,y}; //設置游標位置
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); // 獲取標准輸出設備句柄
SetConsoleCursorPosition(hOut, pos);
函數說明
system()會調用fork()產生子進程,由子進程來調用/bin/sh-c string來執行參數string字元串所代表的命令,此命令執行完後隨即返回原調用的進程。在調用system()期間SIGCHLD 信號會被暫時擱置,SIGINT和SIGQUIT 信號則會被忽略。
如果fork()失敗 返回-1:出現錯誤
如果exec()失敗,表示不能執行Shell,返回值相當於Shell執行了exit(127)
如果執行成功則返回子Shell的終止狀態
以上內容參考:網路-system
② C語言程序設計中如何清屏
C語言並不提供這種功能。
這與所使用的操作系統有關,需要看對應操作系統中的清屏命令是什麼,然後可以在C語言中進行系統調用。
③ C語言在控制台清屏之後滑鼠定位就不行了怎麼辦
樓主你好。
是因為程序卡在這里了:
Y=(int)pos.Y;
if
(inRec.EventType
==
MOUSE_EVENT
&&
inRec.Event.MouseEvent.dwButtonState
==
FROM_LEFT_1ST_BUTTON_PRESSED&&Y<=3&&Y>=1)
//滑鼠左鍵
break;
這里無法break出來。原因是Y<=3&&Y>=1這個條件無法滿足。
程序還在調試中。
【舊代碼省略】
以上調試程序可以看到只要不system("cls")就可以持續讀入滑鼠事件,但是只要取消system("cls")的注釋,在清屏一次之後就會無法讀入滑鼠事件,程序卡在ReadConsoleInput處,只能讀入鍵盤和聚焦事件什麼的。暫時分析到這里。
我用clrscr()代替system("cls")成功了!(clrscr你可以查查網路)
#include
<windows.h>
#include
<conio.h>
#include
<stdlib.h>
#include
<stdio.h>
#define
PERR(bSuccess,
api){if(!(bSuccess))
printf("%s:Error
%d
from
%s
on
line
%d\n",
__FILE__,
GetLastError(),
api,
__LINE__);}
void
MyCls(HANDLE)
;
void
clrscr(void)
{
HANDLE
hStdOut=GetStdHandle(STD_OUTPUT_HANDLE);
MyCls(hStdOut);
return;
}
void
MyCls(HANDLE
hConsole)
{
COORD
coordScreen={0,0};//設置清屏後游標返回的屏幕左上角坐標
BOOL
bSuccess;
DWORD
cCharsWritten;
CONSOLE_SCREEN_BUFFER_INFO
csbi;//保存緩沖區信息
DWORD
dwConSize;//當前緩沖區可容納的字元數
bSuccess=GetConsoleScreenBufferInfo(hConsole,&csbi);//獲得緩沖區信息
PERR(bSuccess,"GetConsoleScreenBufferInfo");
dwConSize=csbi.dwSize.X
*
csbi.dwSize.Y;//緩沖區容納字元數目
//用空格填充緩沖區
bSuccess=FillConsoleOutputCharacter(hConsole,(TCHAR)'
',dwConSize,coordScreen,&cCharsWritten);
PERR(bSuccess,"FillConsoleOutputCharacter");
bSuccess=GetConsoleScreenBufferInfo(hConsole,&csbi);//獲得緩沖區信息
PERR(bSuccess,"ConsoleScreenBufferInfo");
//填充緩沖區屬性
bSuccess=FillConsoleOutputAttribute(hConsole,csbi.wAttributes,dwConSize,coordScreen,&cCharsWritten);
PERR(bSuccess,"FillConsoleOutputAttribute");
//游標返回屏幕左上角坐標
bSuccess=SetConsoleCursorPosition(hConsole,coordScreen);
PERR(bSuccess,"SetConsoleCursorPosition");
return;
}
void
main()
{
int
fh();
int
ret;
HANDLE
hInput
=
GetStdHandle(STD_INPUT_HANDLE);;
//
獲取標准輸入設備句柄
for(;;)
{
printf("請點擊滑鼠左鍵\n");
ret
=
fh(hInput);
printf("%d\n",ret);
Sleep(200);
clrscr();
}
}
int
fh(HANDLE
hInput)
{
INPUT_RECORD
inRec;
DWORD
res;
int
Y;
COORD
pos
=
{0,
0};
for(;;)
{
ReadConsoleInput(hInput,
&inRec,
1,
&res);
pos
=
inRec.Event.MouseEvent.dwMousePosition;
Y=(int)pos.Y;
if
(inRec.EventType
==MOUSE_EVENT
&&inRec.Event.MouseEvent.dwButtonState
==
FROM_LEFT_1ST_BUTTON_PRESSED){
//滑鼠左鍵
break;
}
}
return
Y;
}
④ C語言清屏指令
#include <stdlib.h>
system("CLS");
⑤ c語言中清屏用什麼函數指令
clrscr()
不過要包含一個頭文件
#include<conio.h>
這是TC里的
⑥ c語言中「清屏命令」是清什麼屏
輸出窗口的屏幕
相當於在dos下調用cls
在Linux下 調用clr
將之前的所有輸出 都清除掉。
⑦ c語言關於清屏代碼system("cls");的使用
cls是一個DOS命令,可以將屏幕上的原輸出信息清理掉,游標回到左上角,讓你的程序運行輸出時看的更清楚 些
⑧ c語言在控制台執行中如何實現清除一行語句(不是清屏是清除一行或一個字元串)
不知道,但是你可以嘗試
#include "conio.h"下的
gotoxy(1,1);
for(i=0;i<80;i++);
printf(" ");
有這個效果的。
⑨ c語言中如何清屏
先給你舉個例子,你運行一下:
#include <stdio.h>
int main()
{
printf("清屏前 111111111111\n\n\n");
system("pause");//暫停
system("cls");//清屏
printf("清屏了\n");
}
下面列出常用的DOS命令,都可以用system函數調用:
ASSOC 顯示或修改文件擴展名關聯。
AT 計劃在計算機上運行的命令和程序。
ATTRIB 顯示或更改文件屬性。
BREAK 設置或清除擴展式 CTRL+C 檢查。
CACLS 顯示或修改文件的訪問控制列表(ACLs)。
CALL 從另一個批處理程序調用這一個。
CD 顯示當前目錄的名稱或將其更改。
CHCP 顯示或設置活動代碼頁數。
CHDIR 顯示當前目錄的名稱或將其更改。
CHKDSK 檢查磁碟並顯示狀態報告。
CHKNTFS 顯示或修改啟動時間磁碟檢查。
CLS 清除屏幕。
CMD 打開另一個 Windows 命令解釋程序窗口。
COLOR 設置默認控制台前景和背景顏色。
COMP 比較兩個或兩套文件的內容。
COMPACT 顯示或更改 NTFS 分區上文件的壓縮。
CONVERT 將 FAT 卷轉換成 NTFS。您不能轉換
當前驅動器。
COPY 將至少一個文件復制到另一個位置。
DATE 顯示或設置日期。
DEL 刪除至少一個文件。
DIR 顯示一個目錄中的文件和子目錄。
DISKCOMP 比較兩個軟盤的內容。
DISKCOPY 將一個軟盤的內容復制到另一個軟盤。
DOSKEY 編輯命令行、調用 Windows 命令並創建宏。
ECHO 顯示消息,或將命令回顯打開或關上。
ENDLOCAL 結束批文件中環境更改的本地化。
ERASE 刪除至少一個文件。
EXIT 退出 CMD.EXE 程序(命令解釋程序)。
FC 比較兩個或兩套文件,並顯示不同處。
FIND 在文件中搜索文字字元串。
FINDSTR 在文件中搜索字元串。
FOR 為一套文件中的每個文件運行一個指定的命令
FORMAT 格式化磁碟,以便跟 Windows 使用。
FTYPE 顯示或修改用於文件擴展名關聯的文件類型。
GOTO 將 Windows 命令解釋程序指向批處理程序
中某個標明的行。
GRAFTABL 啟用 Windows 來以圖像模式顯示
擴展字元集。
HELP 提供 Windows 命令的幫助信息。
IF 執行批處理程序中的條件性處理。
LABEL 創建、更改或刪除磁碟的卷標。
MD 創建目錄。
MKDIR 創建目錄。
MODE 配置系統設備。
MORE 一次顯示一個結果屏幕。
MOVE 將文件從一個目錄移到另一個目錄。
PATH 顯示或設置可執行文件的搜索路徑。
PAUSE 暫停批文件的處理並顯示消息。
POPD 還原 PUSHD 保存的當前目錄的上一個值。
PRINT 列印文本文件。
PROMPT 更改 Windows 命令提示符。
PUSHD 保存當前目錄,然後對其進行更改。
RD 刪除目錄。
RECOVER 從有問題的磁碟恢復可讀信息。
REM 記錄批文件或 CONFIG.SYS 中的注釋。
REN 重命名文件。
RENAME 重命名文件。
REPLACE 替換文件。
RMDIR 刪除目錄。
SET 顯示、設置或刪除 Windows 環境變數。
SETLOCAL 開始批文件中環境更改的本地化。
SHIFT 更換批文件中可替換參數的位置。
SORT 對輸入進行分類。
START 啟動另一個窗口來運行指定的程序或命令。
SUBST 將路徑跟一個驅動器號關聯。
TIME 顯示或設置系統時間。
TITLE 設置 CMD.EXE 會話的窗口標題。
TREE 以圖形模式顯示驅動器或路徑的目錄結構。
TYPE 顯示文本文件的內容。
VER 顯示 Windows 版本。
VERIFY 告訴 Windows 是否驗證文件是否已正確寫入磁碟。
VOL 顯示磁碟卷標和序列號。
XCOPY 復制文件和目錄樹。
⑩ C語言中怎麼把控制台清屏
clrscr().這個是turbo C 中的庫函數,包含在<conio.h>