控制台编程笔记

来源:互联网 发布:plc控制电机正反转编程 编辑:程序博客网 时间:2024/06/08 06:07

1,控制台编程简介

windowS 系统有很多子系统,其中,与用房密切的有两大,windows和console子系统;

console 由系统自己创建,就是我们说的小黑框。所谓的控制台编程就是这。虽然api已经集成到了库标准函数中了。

2,控制台api与标准c函数

很多c 都是字符见面,得益与windows控制台的一系列支持。

3,控制台的基本概念;

console句柄:console 句柄类似文件句柄,只当前控制台的操作对象,所有字符界面的api通过console句柄来完成,

Stand In 标准输入句柄  Stand Out 标准输出句柄;

4,控制台边1——获取输入输出句柄

HANDLE WINAPI GetStdHandle(  // 返回HANDLE

_In_ DWORD bStdHandle              //_In_ 类似于注释,或者空宏 有没有都可以。标志是输入用的。没特殊含义。 bStdHandle 是一个形参,微软就这么定的没为什么。

);

我们可以使用此API通过如下方式获取句柄://返回什么类型,就用什么类型去接它。

HANDLE hStdIn,hStdOut;

hStdIn = GetStdHandle(STD_INPUT_HANDLE);         //STD_INPUT_HANDLE  方便你记忆,这个常量定义成了宏

hStdOut =GetStdHandle(STD_OUTPUT_HANDLE);  

控制台输出内容  // 对着函数可以按F12 显示以下内容。

WriteConsole();

BOOL WINAPI  WriteConesole(

_In_ HANDLE hConsoleOutput,

_In_ const VOID *lpBuffer,

_In_ DWORD nNum...ToWrite,

_Out_ LPDWORD  lpNum..Written,

_Reserved_ LPVOID lpReserved

);


ReadConsole();// 输入

SetConsoleTitle() //设置控制台标题

SrcWindow ();

SetConsoleScreenufferSize();


// winapi.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <windows.h>int _tmain(int argc, _TCHAR* argv[]){HANDLE hStdIn, hStdOut;hStdIn = GetStdHandle(STD_INPUT_HANDLE);hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);wchar_t szStr[20] = { 0 };DWORD dwRet;WriteConsole(hStdOut, L"Hello World!", 12, &dwRet, NULL);if (!SetConsoleTitle(L"15PB!")){}SMALL_RECT srctWindow = { 0, 0, 40 - 1, 10 - 1 };if (!SetConsoleWindowInfo(hStdOut,true,&srctWindow)){return 0;}COORD BufferSize = { 40, 10 };if (!SetConsoleScreenBufferSize(hStdOut,BufferSize)){}wchar_t szStrA[15] = L"Hello World!";COORD pos = { 20, 5 };if (!WriteConsoleOutputCharacter(hStdOut,szStrA,12,pos,&dwRet)){//指定位置输出字符串失败}WORD wClr[10];wmemset((wchar_t*)wClr, FOREGROUND_GREEN, 10);wClr[8] = FOREGROUND_RED;wClr[9] = FOREGROUND_GREEN | FOREGROUND_RED;if (!WriteConsoleOutputAttribute(hStdOut,wClr,10,pos,&dwRet)){//在指定位置设置字符串颜色失败}system("pause");return 0;}


vs2013运行;






0 0
原创粉丝点击