課程
/后端開發(fā)
/C
/C語言入門
2018-02-10
源自:C語言入門
正在回答
#include<stdio.h>#include<math.h>#include<windows.h>// 獲取控制臺(tái)窗口句柄 微軟官方網(wǎng)站的程序 直接拿來用了HWND GetConsoleHwnd(void){#define MY_BUFSIZE 1024 // Buffer size for console window titles. ? ?HWND hwndFound; ? ? ? ? // This is what is returned to the caller. ? ?char pszNewWindowTitle[MY_BUFSIZE]; // Contains fabricated ? ?char pszOldWindowTitle[MY_BUFSIZE]; // Contains original ? ? ?GetConsoleTitle(pszOldWindowTitle, MY_BUFSIZE);//獲取控制臺(tái)標(biāo)題存入pszOldWindowTitle中 ? //設(shè)置控制臺(tái)的標(biāo)題為 ?時(shí)間數(shù) 進(jìn)程ID ? ?wsprintf(pszNewWindowTitle,"%d/%d",//把獲取的數(shù)目,和當(dāng)前進(jìn)程ID輸出到緩沖區(qū)pszNewwindowtitle中 ? ? ? ?GetTickCount(),//用于獲取操作系統(tǒng)啟動(dòng)后的毫秒數(shù) ? ? ? ?GetCurrentProcessId());//獲取當(dāng)前進(jìn)程ID ? ? ?SetConsoleTitle(pszNewWindowTitle);//更改控制臺(tái)的標(biāo)題為新內(nèi)容 ? ? ?Sleep(40); ? ? ?hwndFound=FindWindow(NULL, pszNewWindowTitle);//獲取控制臺(tái)的HWND號(hào) ? ? ?SetConsoleTitle(pszOldWindowTitle);//更改控制臺(tái)的標(biāo)題為原始內(nèi)容 ? ? ?return(hwndFound);//返回句柄}void drawXY()//繪制X和Y軸{HWND hWnd=GetConsoleHwnd();//獲取控制臺(tái)窗口句柄,用于設(shè)置畫筆顏色HDC hDC=GetDC(hWnd);COORD ? ? ?dwSize;//記錄窗體大小,用于設(shè)定坐標(biāo)軸遠(yuǎn)點(diǎn)HPEN hNewPen=CreatePen(PS_SOLID,1,RGB(255,0,0));//創(chuàng)建畫筆對象HPEN hOldPen=(HPEN)SelectObject(hDC,hNewPen);//選取畫筆對象進(jìn)行繪圖CONSOLE_SCREEN_BUFFER_INFO bInfo; // 窗口信息HANDLE Hout=GetStdHandle(STD_OUTPUT_HANDLE);//獲取控制臺(tái)句柄GetConsoleScreenBufferInfo(Hout, &bInfo );//獲取控制臺(tái)信息dwSize=bInfo.dwMaximumWindowSize ;//獲取窗口大小,此時(shí)獲得的是字符模式下//從字符到圖像放大坐標(biāo)軸8倍dwSize.X *=8;dwSize.Y*=8;SetBkMode(hDC, TRANSPARENT);SetTextColor(hDC,255*255);//繪制X軸各個(gè)特殊坐標(biāo)TextOut(hDC,dwSize.X-15,dwSize.Y/2-15,"X",1);//Arc(hDC,100,100,300,300,350,500,350,500);//畫圓 其中hDC表示畫圖句柄,100,100,300,300表示所使用的矩形區(qū)域,350,500表示畫弧線的起點(diǎn),350,500表明畫弧線的終點(diǎn) ; //繪制Y軸各個(gè)特殊坐標(biāo)TextOut(hDC,dwSize.X/2,0,"Y",1);MoveToEx(hDC,0,dwSize.Y /2,NULL);LineTo(hDC,dwSize.X,dwSize.Y/2);MoveToEx(hDC,dwSize.X/2,0,NULL);LineTo(hDC,dwSize.X/2,dwSize.Y);ReleaseDC(hWnd,hDC); }void draw(double p){int i;double x,y;HWND hWnd=GetConsoleHwnd();//獲取控制臺(tái)窗口句柄,用于設(shè)置畫筆顏色HDC hDC=GetDC(hWnd);COORD ? ? ?dwSize;//記錄窗體大小,用于設(shè)定坐標(biāo)軸遠(yuǎn)點(diǎn)HPEN hNewPen=CreatePen(PS_SOLID,1,RGB(255,0,0));//創(chuàng)建畫筆對象HPEN hOldPen=(HPEN)SelectObject(hDC,hNewPen);//選取畫筆對象進(jìn)行繪圖CONSOLE_SCREEN_BUFFER_INFO bInfo; // 窗口信息HANDLE Hout=GetStdHandle(STD_OUTPUT_HANDLE);//獲取控制臺(tái)句柄GetConsoleScreenBufferInfo(Hout, &bInfo );//獲取控制臺(tái)信息dwSize=bInfo.dwMaximumWindowSize ;//獲取窗口大小,此時(shí)獲得的是字符模式下//從字符到圖像放大坐標(biāo)軸8倍dwSize.X *=8;dwSize.Y*=8;//MoveToEx(hDC,0,dwSize.Y/2,NULL);for(i=-180;i<=180;i++){x=16*pow(sin(i*3.1415926/180),3.0)*p;y=(13*cos(i*3.1415926/180)-5*cos(2*i*3.1415926/180)-2*cos(3*i*3.1415926/180)-cos(4*i*3.1415926/180))*p;x=(x+16)*dwSize.X/32/2+dwSize.X/4; ? y=-y/16*dwSize.Y/2.3+dwSize.Y/2;x=x;y=y;MoveToEx(hDC,x,y,NULL);LineTo(hDC,x+1,y+1);}}void main(){ ? ? ? ?double p;drawXY();for(p=0.6;p<=1;p=p+0.01)draw(p);system("PAUSE");}
首先,在代碼文件頭部使用#include來包含任何頭文件(擴(kuò)展名為.h或者.hpp的文件)都不會(huì)“產(chǎn)生”額外的函數(shù)。我們可以說,包含一個(gè)頭文件之后,該頭文件內(nèi)部已經(jīng)定義的一些變量,宏,函數(shù)等等資源,將可以在后面的代碼中可以直接拿來使用,比如,當(dāng)我們包含process.h之后,就可以在代碼中使用system()函數(shù)來調(diào)用系統(tǒng)控制臺(tái)的命令,比如cls,、pause等等。同理,包含了windows.h之后,在該文件中定義的一些資源我們可以直接使用,其中包括大部分的Win32 API函數(shù),以及一些Win32宏。具體文件內(nèi)容你可以找到“C:\Program Files\Microsoft Visual Studio\VC98\Include\WINDOWS.H”(假設(shè)你安裝的是VC6,且裝在C盤。安裝其他版本或者安裝在其他目錄請以此類推),使用文本編輯器自行察看。
總之就是說簡單點(diǎn)就是采用windows.h里的資源。如
#include <stdio.h> 則采用stdio.h里的資源
舉報(bào)
C語言入門視頻教程,帶你進(jìn)入編程世界的必修課-C語言
5 回答include 是什么意思
1 回答#include是什么意思
1 回答include<stdio.h>是什么意思
3 回答#include<ctype.h>什么意思
4 回答#include<stdio.h>什么意思
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2019-01-26
#include<stdio.h>
#include<math.h>
#include<windows.h>
// 獲取控制臺(tái)窗口句柄 微軟官方網(wǎng)站的程序 直接拿來用了
HWND GetConsoleHwnd(void)
{
#define MY_BUFSIZE 1024 // Buffer size for console window titles.
? ?HWND hwndFound; ? ? ? ? // This is what is returned to the caller.
? ?char pszNewWindowTitle[MY_BUFSIZE]; // Contains fabricated
? ?char pszOldWindowTitle[MY_BUFSIZE]; // Contains original
?
? ?GetConsoleTitle(pszOldWindowTitle, MY_BUFSIZE);//獲取控制臺(tái)標(biāo)題存入pszOldWindowTitle中
? //設(shè)置控制臺(tái)的標(biāo)題為 ?時(shí)間數(shù) 進(jìn)程ID
? ?wsprintf(pszNewWindowTitle,"%d/%d",//把獲取的數(shù)目,和當(dāng)前進(jìn)程ID輸出到緩沖區(qū)pszNewwindowtitle中
? ? ? ?GetTickCount(),//用于獲取操作系統(tǒng)啟動(dòng)后的毫秒數(shù)
? ? ? ?GetCurrentProcessId());//獲取當(dāng)前進(jìn)程ID
?
? ?SetConsoleTitle(pszNewWindowTitle);//更改控制臺(tái)的標(biāo)題為新內(nèi)容
?
? ?Sleep(40);
?
? ?hwndFound=FindWindow(NULL, pszNewWindowTitle);//獲取控制臺(tái)的HWND號(hào)
?
? ?SetConsoleTitle(pszOldWindowTitle);//更改控制臺(tái)的標(biāo)題為原始內(nèi)容
?
? ?return(hwndFound);//返回句柄
}
void drawXY()//繪制X和Y軸
{
HWND hWnd=GetConsoleHwnd();//獲取控制臺(tái)窗口句柄,用于設(shè)置畫筆顏色
HDC hDC=GetDC(hWnd);
COORD ? ? ?dwSize;//記錄窗體大小,用于設(shè)定坐標(biāo)軸遠(yuǎn)點(diǎn)
HPEN hNewPen=CreatePen(PS_SOLID,1,RGB(255,0,0));//創(chuàng)建畫筆對象
HPEN hOldPen=(HPEN)SelectObject(hDC,hNewPen);//選取畫筆對象進(jìn)行繪圖
CONSOLE_SCREEN_BUFFER_INFO bInfo; // 窗口信息
HANDLE Hout=GetStdHandle(STD_OUTPUT_HANDLE);//獲取控制臺(tái)句柄
GetConsoleScreenBufferInfo(Hout, &bInfo );//獲取控制臺(tái)信息
dwSize=bInfo.dwMaximumWindowSize ;//獲取窗口大小,此時(shí)獲得的是字符模式下
//從字符到圖像放大坐標(biāo)軸8倍
dwSize.X *=8;
dwSize.Y*=8;
SetBkMode(hDC, TRANSPARENT);SetTextColor(hDC,255*255);
//繪制X軸各個(gè)特殊坐標(biāo)
TextOut(hDC,dwSize.X-15,dwSize.Y/2-15,"X",1);
//Arc(hDC,100,100,300,300,350,500,350,500);//畫圓 其中hDC表示畫圖句柄,100,100,300,300表示所使用的矩形區(qū)域,350,500表示畫弧線的起點(diǎn),350,500表明畫弧線的終點(diǎn) ;
//繪制Y軸各個(gè)特殊坐標(biāo)
TextOut(hDC,dwSize.X/2,0,"Y",1);
MoveToEx(hDC,0,dwSize.Y /2,NULL);
LineTo(hDC,dwSize.X,dwSize.Y/2);
MoveToEx(hDC,dwSize.X/2,0,NULL);
LineTo(hDC,dwSize.X/2,dwSize.Y);
ReleaseDC(hWnd,hDC);
}
void draw(double p)
{
int i;
double x,y;
HWND hWnd=GetConsoleHwnd();//獲取控制臺(tái)窗口句柄,用于設(shè)置畫筆顏色
HDC hDC=GetDC(hWnd);
COORD ? ? ?dwSize;//記錄窗體大小,用于設(shè)定坐標(biāo)軸遠(yuǎn)點(diǎn)
HPEN hNewPen=CreatePen(PS_SOLID,1,RGB(255,0,0));//創(chuàng)建畫筆對象
HPEN hOldPen=(HPEN)SelectObject(hDC,hNewPen);//選取畫筆對象進(jìn)行繪圖
CONSOLE_SCREEN_BUFFER_INFO bInfo; // 窗口信息
HANDLE Hout=GetStdHandle(STD_OUTPUT_HANDLE);//獲取控制臺(tái)句柄
GetConsoleScreenBufferInfo(Hout, &bInfo );//獲取控制臺(tái)信息
dwSize=bInfo.dwMaximumWindowSize ;//獲取窗口大小,此時(shí)獲得的是字符模式下
//從字符到圖像放大坐標(biāo)軸8倍
dwSize.X *=8;
dwSize.Y*=8;
//MoveToEx(hDC,0,dwSize.Y/2,NULL);
for(i=-180;i<=180;i++)
{
x=16*pow(sin(i*3.1415926/180),3.0)*p;
y=(13*cos(i*3.1415926/180)-5*cos(2*i*3.1415926/180)-2*cos(3*i*3.1415926/180)-cos(4*i*3.1415926/180))*p;
x=(x+16)*dwSize.X/32/2+dwSize.X/4;
? y=-y/16*dwSize.Y/2.3+dwSize.Y/2;
x=x;
y=y;
MoveToEx(hDC,x,y,NULL);
LineTo(hDC,x+1,y+1);
}
}
void main()
{
? ? ? ?double p;
drawXY();
for(p=0.6;p<=1;p=p+0.01)
draw(p);
system("PAUSE");
}
2018-02-10
首先,在代碼文件頭部使用#include來包含任何頭文件(擴(kuò)展名為.h或者.hpp的文件)都不會(huì)“產(chǎn)生”額外的函數(shù)。
我們可以說,包含一個(gè)頭文件之后,該頭文件內(nèi)部已經(jīng)定義的一些變量,宏,函數(shù)等等資源,將可以在后面的代碼中可以直接拿來使用,比如,當(dāng)我們包含process.h之后,就可以在代碼中使用system()函數(shù)來調(diào)用系統(tǒng)控制臺(tái)的命令,比如cls,、pause等等。
同理,包含了windows.h之后,在該文件中定義的一些資源我們可以直接使用,其中包括大部分的Win32 API函數(shù),以及一些Win32宏。具體文件內(nèi)容你可以找到“C:\Program Files\Microsoft Visual Studio\VC98\Include\WINDOWS.H”(假設(shè)你安裝的是VC6,且裝在C盤。安裝其他版本或者安裝在其他目錄請以此類推),使用文本編輯器自行察看。
總之就是說簡單點(diǎn)就是采用windows.h里的資源。如
#include <stdio.h> 則采用stdio.h里的資源