圖形和圖像函數(shù)包含在graphics.h里面(一) 像素函數(shù)56. putpiel() 畫像素點(diǎn)函數(shù)57. getpixel()返回像素色函數(shù)(二) 直線和線型函數(shù)58. line() 畫線函數(shù)59. lineto() 畫線函數(shù)60. linerel() 相對畫線函數(shù)61. setlinestyle() 設(shè)置線型函數(shù)62. getlinesettings() 獲取線型設(shè)置函數(shù)63. setwritemode() 設(shè)置畫線模式函數(shù)(三)、多邊形函數(shù)64. rectangle() 畫矩形函數(shù)65. bar() 畫條函數(shù)66. bar3d() 畫條塊函數(shù)67. drawpoly() 畫多邊形函數(shù)(四)、 圓、弧和曲線函數(shù)68. getaspectratio()獲取縱橫比函數(shù)69. circle()畫圓函數(shù)70. arc() 畫圓弧函數(shù)71. ellipse()畫橢圓弧函數(shù)72. fillellipse() 畫橢圓區(qū)函數(shù)73. pieslice() 畫扇區(qū)函數(shù)74. sector() 畫橢圓扇區(qū)函數(shù)75. getarccoords()獲取圓弧坐標(biāo)函數(shù)(五)、 填充函數(shù)76. setfillstyle() 設(shè)置填充圖樣和顏色函數(shù)77. setfillpattern() 設(shè)置用戶圖樣函數(shù)78. floodfill() 填充閉域函數(shù)79. fillpoly() 填充多邊形函數(shù)80. getfillsettings() 獲取填充設(shè)置函數(shù)81. getfillpattern() 獲取用戶圖樣設(shè)置函數(shù)(六)、圖像函數(shù)82. imagesize() 圖像存儲(chǔ)大小函數(shù)83. getimage() 保存圖像函數(shù)84. putimage() 輸出圖像函數(shù)四、圖形和圖像函數(shù)對許多圖形應(yīng)用程序,直線和曲線是非常有用的。但對有些圖形只能靠操作單個(gè)像素才能畫出。當(dāng)然如果沒有畫像素的功能,就無法操作直線和曲線的函數(shù)。而且通過大規(guī)模使用像素功能,整個(gè)圖形就可以保存、寫、擦除和與屏幕上的原有圖形進(jìn)行疊加。(一) 像素函數(shù)56. putpixel() 畫像素點(diǎn)函數(shù)功能: 函數(shù)putpixel() 在圖形模式下屏幕上畫一個(gè)像素點(diǎn)。用法: 函數(shù)調(diào)用方式為void putpixel(int x,int y,int color);說明: 參數(shù)x,y為像素點(diǎn)的坐標(biāo),color是該像素點(diǎn)的顏色,它可以是顏色符號名,也可以是整型色彩值。此函數(shù)相應(yīng)的頭文件是graphics.h返回值: 無例: 在屏幕上(6,8)處畫一個(gè)紅色像素點(diǎn):putpixel(6,8,RED);57. getpixel()返回像素色函數(shù)功能: 函數(shù)getpixel()返回像素點(diǎn)顏色值。用法: 該函數(shù)調(diào)用方式為int getpixel(int x,int y);說明: 參數(shù)x,y為像素點(diǎn)坐標(biāo)。函數(shù)的返回值可以不反映實(shí)際彩色值,這取決于調(diào)色板的設(shè)置情況(參見setpalette()函數(shù))。這個(gè)函數(shù)相應(yīng)的頭文件為graphics.h返回值: 返回一個(gè)像素點(diǎn)色彩值。例: 把屏幕上(8,6)點(diǎn)的像素顏色值賦給變量color。color=getpixel(8,6);
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供分宜網(wǎng)站建設(shè)、分宜做網(wǎng)站、分宜網(wǎng)站設(shè)計(jì)、分宜網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、分宜企業(yè)網(wǎng)站模板建站服務(wù),十載分宜做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
#include iostream
#include windows.h
using namespace std;
/************************************************/
/*參數(shù)說明:
char *pszDestPath為需要遍歷的目標(biāo)路徑
/************************************************/
EnmuDirectory(char *pszDestPath, int sum)
{
//此結(jié)構(gòu)說明參MSDN
WIN32_FIND_DATA FindFileData;
//查找文件的句柄
HANDLE hListFile;
//絕對路徑,例:c:\windows\system32\cmd.exe
char szFullPath[MAX_PATH];
//相對路徑
char szFilePath[MAX_PATH];
//構(gòu)造相對路徑
wsprintf(szFilePath, "%s\\*", pszDestPath);
//查找第一個(gè)文件,獲得查找句柄,如果FindFirstFile返回INVALID_HANDLE_VALUE則返回
if((hListFile = FindFirstFile(szFilePath, FindFileData)) == INVALID_HANDLE_VALUE)
{
//查找文件錯(cuò)誤
return 1;
}
else
{
do
{
if( lstrcmp(FindFileData.cFileName, TEXT(".")) == 0 ||
lstrcmp(FindFileData.cFileName, TEXT("..")) == 0 )
{
continue;
}
//構(gòu)造全路徑
wsprintf(szFullPath, "%s\\%s", pszDestPath, FindFileData.cFileName);
//讀取文件屬性,如果不是文件夾
if(!(FindFileData.dwFileAttributes FILE_ATTRIBUTE_DIRECTORY))
{
char *pszFileType = NULL;
pszFileType = (FindFileData.cFileName[strlen(FindFileData.cFileName) - 3]);
if(!stricmp(pszFileType, "txt"))
{
coutFindFileData.cFileNameendl;
++sum;
}
}
//如果是文件夾,則遞歸調(diào)用EnmuDirectory函數(shù)
if(FindFileData.dwFileAttributes FILE_ATTRIBUTE_DIRECTORY)
{
EnmuDirectory(szFullPath, sum);
}
//循環(huán),查找下一個(gè)文件
}while(FindNextFile(hListFile, FindFileData));
}
//關(guān)閉句柄
FindClose(hListFile);
//清空結(jié)構(gòu)??捎锌蔁o的一句代碼。函數(shù)退出會(huì)自動(dòng)清空。
ZeroMemory(FindFileData, sizeof(FindFileData));
return 0;
}
int main()
{
int sum = 0;
EnmuDirectory("D:", sum);
C語言函數(shù)的運(yùn)用及調(diào)用
1.當(dāng)程序變得越來越復(fù)雜的時(shí)候,我們可以使用函數(shù)進(jìn)行完成任務(wù),并不再是進(jìn)行編寫。
2.C語言本身就具有豐富的庫函數(shù):
目錄路徑函數(shù)
字符類型分類函數(shù)
內(nèi)存管理函數(shù)
數(shù)學(xué)函數(shù)
進(jìn)程控制函數(shù)
日期和時(shí)間函數(shù)
接口函數(shù)
輸入輸出函數(shù)
圖形函數(shù)
診斷函數(shù)
3.每一種函數(shù)都有它的作用,在需要使用時(shí),直接進(jìn)行調(diào)用就可以了。
4.函數(shù)分為有參和無參函數(shù)。
參數(shù)可以分為形參與實(shí)參。
形參在函數(shù)內(nèi),而實(shí)參在函數(shù)外。
形參直接使用,而實(shí)參在函數(shù)外調(diào)用。
5. 函數(shù)的值只能通過return語句返回主調(diào)函數(shù)。
6.在函數(shù)內(nèi)有局部變量和全局變量兩種,局部變量在函數(shù)內(nèi)使用,而全局變量可在函數(shù)中使用。
7.從變量作用域可以劃分全局,而在變量的生存期可以分為靜態(tài)與動(dòng)態(tài)存儲(chǔ)方式。
固定的存儲(chǔ)空間與運(yùn)行時(shí)分配的存儲(chǔ)空間方式還是有所不同的。
auto聲明自動(dòng)變量,自動(dòng)變量用關(guān)鍵字作存儲(chǔ)類別的聲明,在函數(shù)調(diào)用結(jié)束將會(huì)自動(dòng)釋放這些存儲(chǔ)空間。
static可以聲明局部變量,在函數(shù)調(diào)用結(jié)束之后不消失而保留原值。
8.register可以聲明局部變量,在函數(shù)調(diào)用時(shí)為了提高效率,可以寄存在CPU的寄存器中。
extern可以聲明局部變量,擴(kuò)展程序文件中的作用域。
c語言是沒有圖形函數(shù)庫的。。只有編譯器附屬的函數(shù)庫。如:turbo
c
有g(shù)raphics.h函數(shù)庫。。。MS
C有MFC
有,你可以使用graphics.h 頭文件調(diào)用標(biāo)準(zhǔn)C函數(shù)
不過
16位c編譯器繪圖,就是中斷調(diào)用
turboc的圖形庫就是封裝了中斷調(diào)用,不過支持的分辨率最高只有640*480
并不支持SVGA
支持SVGA的高分辨率繪圖通過調(diào)用中斷 10h的4f功能來實(shí)現(xiàn)
主要分辨率設(shè)置代碼
unsigned char set_SVGA_mode(int vmode)
{union REGS r;
r.x.ax=0x4f02;
r.x.bx=vmode;
int86(0x10,r,r);
return(r.h.ah);
}
void hide_text_cursor(void)
{union REGS r;
r.h.ah=1;
r.h.ch=32;
int86(0x10,r,r);
}
void selectpage(register char page)
{union REGS r;
r.x.ax=0x4f05;
r.x.bx=0;
r.x.dx=page;
int86(0x10,r,r);
}
void show_text_cursor(char size)
{union REGS r;
r.h.ah=1;
r.h.cl=size;
r.h.ch=7;
int86(0x10,r,r);
}
unsigned int get_SVGA_mode()
{union REGS r;
r.x.ax=0x4f03;
int86(0x10,r,r);
return(r.x.bx);
}
這個(gè)在所有16位C編譯器里都可以使用,只是略有不同