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