有關螢幕操作的函式
void clrscr(void);
該函式將清除視窗中的文字,並將游標移到當前視窗的左上角,即(1, 1)處。
void clreol(void);
該函式將清除當前視窗中從游標位置開始到本行結尾的所有字元,但不改變游標原來的
位置。void delline(void);
該函式將刪除一行字元,該行是游標所在行。
void gotoxy(int x, int y);
該函式很有用,用來定位游標在當前視窗中的位置。這裡
x,y是指游標要定位處的坐
標(相對於視窗而言)。當
x, y超出了視窗的大小時,該函式就不起作用了。
int movetext(int x1, int y1, int x2, int y2, int x3, int y3);
該函式將把螢幕上左上角為(xl,y1),右下角為(x2,y2)的矩形內文字拷貝到左上角為(x3,
y3)的乙個新矩形區內。這裡
x,y座標是以整個螢幕為視窗座標系,即螢幕左上角為
(1,1)。
該函式與開設的視窗無關,且原矩形區文字不變。
int gettext(int xl, int yl, int x2, int y2, void *buffer);
該函式將把左上角為(xl,y1),右下角為(x2,y2)的螢幕矩形區內的文字存到由指標
buffer
指向的乙個記憶體緩衝區內,當操作成功,返回
1;否則,返回
0。因乙個在螢幕上顯示的字元需佔顯示儲存器
vram的兩個位元組,即第乙個位元組是該字
符的 ascii碼,第二個位元組為屬性位元組,即表示其顯示的前景、背景色及是否閃爍,所以
buffer指向的記憶體緩衝區的位元組總數的計算為:
位元組總數=矩形內行數×每行列數×2
其中:矩形內行數
=y2-y1+l,每行列數
=x2-xl+1(每行列數是指矩形內每行的列數)。矩形內
文字字元在緩衝區內存放的次序是從左到右,從上到下,每個字元佔連續兩個位元組並依次存
放。 int puttext(int x1, int y1, int x2, int y2, void *buffer);
該函式則是將
gettext()函式存入記憶體
buffer中的文字內容拷貝到螢幕上指定的位置。
注意:
(1) gettext()函式和
puttext()函式中的座標是對整個螢幕而言的,即是螢幕的絕對座標,而
不是相對視窗的座標;
(2) movetext()函式是拷貝而不是移動視窗區域內容,即使用該函式後,原位置區域的文字
內容仍然存在。
例程 3-2:下面的程式首先定義了乙個字元陣列,下標為
64,表示用來存四行八列的文字。
由於沒有用
window函式設定視窗,因而用預設值,即全螢幕為乙個視窗,程式開始設定
80列×25行文字顯示方式
(c80),背景色為藍色,前景色為紅色,經
clrscr函式清屏後,設定
的背景色才使螢幕背景變藍。gotoxy(10,10)使游標移到第
10行
10列,然後在
(10,10)開
始位置顯示
l:load,接著在下面三行相同的列位置顯示另外三條資訊,
13行
10列顯示的
e:exit後面帶有回車換行符,為的是將游標移到下一行開始處,好顯示
press any key to
continue。當按任一鍵後,
gettext函式將
(10,l0,18,13)矩形區的內容存到
ch快取區內。
ch即上述的四行八列資訊,接著設定乙個視窗,並縱向寫上
1,2,3,4,然後用
movetext(),
將此視窗內容複製到另一區域,由於此區域包括背景色和顯示的字元,所以被複製到另一區
域的內容也是相同的背景色和文字。當按任一鍵後,又出現提示資訊,再按鍵,則存在
ch緩衝區內的文字由
puttext()又複製到開設的視窗內了,注意上述的函式
movetext(),gettext(),
puttext()均與開設的視窗內座標無關,而是以整個螢幕為參考係的。
/*-------例程
3-2-------*/
#include
main()
getch();
clrscr();
puttext(23,10,31,13,ch);
getch();
/* 將
ch快取區所存文字在屏上顯示 */
C 高階程式設計筆記(一)
c 與.net c 本身是一種語言 net framework是乙個平台即乙個環境。只是c 編譯器專門用於.net,所以c 總是使用.net執行。net framework 的核心是執行執行環境 公共語言執行庫clr net執行庫 在clr下執行的 稱為託管 mannaged code clr對於源...
《C 高階程式設計》讀書筆記(一)
1,string型別的特殊性 string型別是乙個引用型別,因此當把義字串變數賦予給另乙個字串是,會得到對記憶體中同乙個字串的兩個引用。但是,string與引用型別的常見行為有一些區別。例如,字串是不可改變的。改變其中乙個字串,就會建立乙個全新的string物件,而另乙個字串不發生任何變化。str...
javascript高階程式設計筆記(一)
第五章引用型別 js建立陣列的方式兩種 1var colors new array 裡面可以定義長度或者實際內容。2 var color js中沒有 塊概念for var i 0 i 10 i alert 結果為10 js函式中var宣告的函式會自動新增到最近的環境,比如呼叫乙個函式,裡面的var變...