Visual C++中使用gotoxy() / clrscr()等函数(转)

Turbo C/C++ 3.0深度解析:从编译链接原理到经典算法实战 C/C++编译与链接是程序构建的核心过程,涉及将源代码转换为可执行文件的底层机制。其原理基于编译器、链接器等工具链的协同工作,通过预处理、编译、汇编和链接等阶段,解决符号引用和内存地址分配问题。理解这一过程的技术价值在于,它能帮助开发者诊断现代IDE中常见的环境配置错误和运行时库依赖问题,例如“未定义符号”或“动态链接库缺失”等错误。在嵌入式开发、教学演示或算法学习等应用场景中,掌握底层工具链尤为重要。本文以Turbo C/C++ 3.0这一经典集成开发环境为例,通过剖析其**内存模式**和**图形库**等 阅读详情

出自:http://blog.ednchina.com/lijin305/62382/message.aspx
--------------------------------------------------------------------------------
#include < windows.h >

void clrscr(void);
void clreol(void);
void clreoscr(void);
void gotoxy(int ,int );

// --- Funktionsimplementierung

/*********************************************************************************/

void clrscr(void) //clearscreen: gesamten Bildschirm leeren
{
CONSOLE_SCREEN_BUFFER_INFO   csbiInfo;             //variablendklaration
HANDLE   hConsoleOut;
COORD   Home = {0,0};
DWORD   dummy;

hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo);

FillConsoleOutputCharacter(hConsoleOut,' ',csbiInfo.dwSize.X * csbiInfo.dwSize.Y,Home,&dummy);   //bis cursorposition leerzeichen ausgeben
csbiInfo.dwCursorPosition.X = 0;                 //cursorposition X koordinate festlegen
csbiInfo.dwCursorPosition.Y = 0;                 //cursorposition Y koordinate festlegen
SetConsoleCursorPosition(hConsoleOut,csbiInfo.dwCursorPosition);   //den cursor an die festgelegte koordinate setzen
}

/*********************************************************************************/

void clreol(void) //clear end of line: den rest der Zeile nach dem cursor l鰏chen
{
CONSOLE_SCREEN_BUFFER_INFO   csbiInfo;             //variablendklaration
HANDLE   hConsoleOut;
COORD   Home,pos;
DWORD   dummy;

hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo);

Home = csbiInfo.dwCursorPosition;
pos.X = 80 - csbiInfo.dwCursorPosition.X;

FillConsoleOutputCharacter(hConsoleOut,' ',pos.X,Home,&dummy);
}

/*********************************************************************************/

void clreoscr(void) //clear end of screen: alles nach dem cursor l鰏chen
{
CONSOLE_SCREEN_BUFFER_INFO   csbiInfo;             //variablendklaration
HANDLE   hConsoleOut;
COORD   Home;
DWORD   dummy;

hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo);

Home=csbiInfo.dwCursorPosition;
FillConsoleOutputCharacter(hConsoleOut,' ',csbiInfo.dwSize.X * csbiInfo.dwSize.Y,Home,&dummy);
}

/*********************************************************************************/

void gotoxy(int x,int y) //cursor an gewuenschte position auf dem bildschirm setzen
{
CONSOLE_SCREEN_BUFFER_INFO   csbiInfo;             //variablendklaration
HANDLE   hConsoleOut;

hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo);

csbiInfo.dwCursorPosition.X = x;                 //cursorposition X koordinate festlegen
csbiInfo.dwCursorPosition.Y = y;                 //cursorposition Y koordinate festlegen
SetConsoleCursorPosition(hConsoleOut,csbiInfo.dwCursorPosition);   //den cursor an die festgelegte koordinate setzen
}

void   textcolor(int   color)  
{  
  switch   (color)  
  {  
  case   0:     //   White   on   Black  
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),  
                    FOREGROUND_INTENSITY   |   FOREGROUND_RED   |  
                    FOREGROUND_GREEN   |   FOREGROUND_BLUE);  
    break;  
  case   1:     //   Red   on   Black  
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),  
                      FOREGROUND_INTENSITY   |   FOREGROUND_RED);  
    break;  
  case   2:     //   Green   on   Black  
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),  
                    FOREGROUND_INTENSITY   |   FOREGROUND_GREEN);  
    break;  
  case   3:     //   Yellow   on   Black  
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),  
                    FOREGROUND_INTENSITY   |   FOREGROUND_RED   |  
                    FOREGROUND_GREEN);  
    break;  
  case   4:     //   Blue   on   Black  
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),  
                    FOREGROUND_INTENSITY   |   FOREGROUND_BLUE);  
    break;  
  case   5:     //   Magenta   on   Black  
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),  
                  FOREGROUND_INTENSITY   |   FOREGROUND_RED   |  
                  FOREGROUND_BLUE);  
    break;  
  case   6:     //   Cyan   on   Black  
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),  
                  FOREGROUND_INTENSITY   |   FOREGROUND_GREEN   |  
                  FOREGROUND_BLUE);  
    break;  
  case   7:     //   Black   on   Gray  
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),  
                BACKGROUND_INTENSITY   |   BACKGROUND_INTENSITY);  
    break;  
  case   8:     //   Black   on   White  
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),  
                BACKGROUND_INTENSITY   |   FOREGROUND_INTENSITY   |  
                BACKGROUND_RED   |   BACKGROUND_GREEN   |  
                BACKGROUND_BLUE);  
    break;  
  case   9:     //   Red   on   White  
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),  
                BACKGROUND_INTENSITY   |   FOREGROUND_INTENSITY   |  
                BACKGROUND_RED   |   BACKGROUND_GREEN   |  
                BACKGROUND_BLUE   |  
    FOREGROUND_RED);  
    break;  
  case   10:     //   Green   on   White  
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),  
                BACKGROUND_INTENSITY   |   FOREGROUND_INTENSITY   |  
                BACKGROUND_RED   |   BACKGROUND_GREEN   |  
                BACKGROUND_BLUE   |   FOREGROUND_GREEN);  
    break;  
  case   11:     //   Yellow   on   White  
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),  
                BACKGROUND_INTENSITY   |   FOREGROUND_INTENSITY   |  
                BACKGROUND_RED   |   BACKGROUND_GREEN   |  
                BACKGROUND_BLUE   |   FOREGROUND_RED   |  
                FOREGROUND_GREEN);  
    break;  
  case   12:     //   Blue   on   White  
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),  
                BACKGROUND_INTENSITY   |   FOREGROUND_INTENSITY   |  
                BACKGROUND_RED   |   BACKGROUND_GREEN   |  
                BACKGROUND_BLUE   |   FOREGROUND_BLUE);  
    break;  
  case   13:     //   Magenta   on   White  
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),  
                BACKGROUND_INTENSITY   |   FOREGROUND_INTENSITY   |  
                BACKGROUND_RED   |   BACKGROUND_GREEN   |  
                BACKGROUND_BLUE   |   FOREGROUND_RED   |  
                FOREGROUND_BLUE);  
    break;  
  case   14:     //   Cyan   on   White  
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),  
                BACKGROUND_INTENSITY   |   FOREGROUND_INTENSITY   |  
                BACKGROUND_RED   |   BACKGROUND_GREEN   |  
                BACKGROUND_BLUE   |   FOREGROUND_GREEN   |  
                FOREGROUND_BLUE);  
    break;  
  case   15:     //   White   on   White  
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),  
              BACKGROUND_INTENSITY   |   FOREGROUND_INTENSITY   |  
              BACKGROUND_RED   |   BACKGROUND_GREEN   |  
              BACKGROUND_BLUE   |   FOREGROUND_RED   |  
              FOREGROUND_GREEN   |   FOREGROUND_BLUE);  
    break;  
  default   :     //   White   on   Black  
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),  
              FOREGROUND_INTENSITY   |   FOREGROUND_RED   |  
              FOREGROUND_GREEN   |   FOREGROUND_BLUE);  
    break;  
  }  
}  

Turbo C++ 3.0 安装与配置全攻略:解决高校C语言实验环境搭建难题 集成开发环境(IDE)是程序员编写、编译和调试代码的核心工具,其原理在于将编辑器、编译器、调试器等组件整合在一个统一的图形界面中,从而提升开发效率。在C/C++语言的教学与学习场景中,环境配置往往是初学者面临的首要技术挑战,其价值在于为后续的算法实现和项目实践奠定稳定的基础。特别是在国内许多高校的《C语言程序设计》课程中,Turbo C++ 3.0因其轻量、纯粹以及对经典教材例题的良好支持,仍是指定的实验环境。然而,这款为16位DOS设计的软件在现代64位Windows系统上存在显著的兼容性问题,例如程序无 阅读详情

相关推荐

c++游戏小技巧3:Sleep(停顿) 与 gotoxy(0,0) (无闪清屏)

2D游戏必备技巧

zzb的博客 4467

Visual C++中使用gotoxy() / clrscr()等函数

Visual C++中使用gotoxy() / clrscr()等函数 //VisualC++中使用gotoxy()/clrscr()等函数#include&lt;windows.h&gt;voidclrscr(void);voidclreol(void);voidclreoscr(void);voidgotoxy(int,int);voidclrscr(void){CONSOLE_SC...

huozheleisi 353

Turbo C++ 3.0:用DOSBox复刻经典C/C++开发环境

编译器是连接源代码与可执行程序的桥梁,理解编译与链接原理是程序员进阶的必经之路。在DOS时代,Turbo C++ 3.0凭借轻量集成环境和完整的C/C++支持,成为一代人的编程启蒙工具。它采用16位实模式与分段内存模型,通过近远指针和丰富的内存模型选项,让开发者深入理解底层硬件寻址逻辑。如今通过DOSBox模拟器,我们仍能在现代操作系统上完整复刻这一经典开发环境,体验从编辑、编译到调试的全流程操作。对于想夯实C语言基础、探索真实编译过程,或重温老牌IDE工程实践的读者而言,Turbo C++ 3.0提供了一

weixin_42523670的博客 216

【C语言】学习gotoxy() 与 clrscr() 函数

在写代码之前,我们先来了解一下gotoxy() 与 clrscr() 函数。 gotoxy() 函数 函数原型: extern void gotoxy(int x, int y) 函数用法: #include <system.h> 函数功能: 将光标移动到指定位置。 说明: gotoxy(x,y)将光标移动到指定行x和列y。设置光标到文本屏幕的指定位置,其中参数x,y为文本屏幕的坐标...

ZD_012的博客 3407

gotoxy头文件

gotoxy

WRF-CHEM 新手向实践(四):化学初始/边界场及namelist设置

这是这个系列的最后一节了,这些经验是自己作为一个半路出家的外行一步步摸索出来的,其中不免有很多理解不到位的地方,但也正是如此,我相信这是目前新手入门wrf-chem最友好的教程之一,希望能对大家有实质性的帮助。本节继续未完成的内容。在mozbc生成化学初始和边界条件之前,还需要先在wrfinput文件中开启化学部分。

qq_42335815的博客 4634

clrscr()及gotoxy()函数

1、clrscr()   作用:清屏,跟 cmd 中的清屏作用一样   注意:只有在 Trubo C 中能用,需要包含头文件:conio.h   替代:system("cls"); 需要头文件:stdlib.h   实例: #include <stdio.h> #include <stdlib.h> #include <Windows.h&...

2310

三菱FX5U运动控制(步进)

三菱FX5U脉冲定位控制,原点回归,相对定位,绝对定位,运动控制案例。

weixin_55762091的博客 1万+

C++中的gotoxy函数

必定有用的gotoxy函数

如果没有特别说明,c++都是基于GCC-4.9.2运行的 8228

CAN通信:EB中配置CAN驱动,配置参数解析

以S32K314芯片说明,其他芯片不同,参数配置也有差异。

zhangxiaio1的博客 2166

DRAM 埋入式字线(Buried Wordline)技术深度解析:从二维平面到三维凹槽

埋入式字线(bWL)及其核心的埋入式沟道阵列晶体管(BCAT)架构,无疑是 DRAM 发展史上的一次关键性革命。它在约 40nm 技术节点被行业主流采纳,成功地帮助 DRAM 产业克服了传统平面晶体管的物理缩放极限。力挽狂澜的续命技术:bWL 通过引入三维沟道结构,从根本上解决了由短沟道效应和漏电流失控引发的数据保持危机,为经典的 1T1C(单晶体管 - 单电容)DRAM 单元架构延续了超过十年的生命力。协同优化的基石技术。

m0_37606066的博客 3325

让visual studio也可以用TC中的clrscr()和gotoxy()

很多人用TC写的程序总会有clrscr()清屏和gotoxy()指定位置输出的功能,vs没有提供这个功能,总提示LNK2019:   unresolved   external   symbol   _gotoxy   referenced   in   function  ,L

3725

一种基于OpenPose和DNN的跌倒检测软件系统(中文&英文)

学习并实现一种跌倒检测模型,此模型基于OpenPose实现逐帧人体姿态检测,使用DNN识别人体动作。检测方式有在线与离线两种,本文主要测试了离线模式,测试效果较好。

Tongzhou_Li的博客 2643

VC6中代替 gotoxy() 和 clrscr() 方法

在C语言中,gotoxy()是用于在屏幕上定位光标到x,y的函数,clrscr()函数的作用是清空屏幕上的内容,像cmd里的cls命令。 但是在VC6中却是不支持gotoxy()和clrscr()这两个函数的。 以下是这两个函数的替代方法: 1.替代gotoxy()方法: 定义gotoxy()函数: #include "windows.h" void gotoxy(int x,int y){ CO...

demo_yo的博客 1014

论文复现5:UMI Universal Manipulation Interface

UMI 采用手持式夹具,加上精心的界面设计,可实现便携式、低成本和信息丰富的数据收集,以进行具有挑战性的双手和动态操作演示。配备这些功能后,UMI 框架解锁了新的机器人操作功能,只需更改每个任务的训练数据,即可实现零样本可推广的动态、双手、精确和长视野行为。我们通过全面的现实世界实验展示了 UMI 的多功能性和有效性,其中通过 UMI Zeroshot 学习的策略在对不同的人类演示进行训练时可以推广到新的环境和对象。项目主页:https://umi-gripper.github.io/

github_38060285的博客 1972

基于 STM32 设计的 HC05 蓝牙音箱

本项目介绍如何使用 STM32 微控制器和 HC05 蓝牙模块设计一个简单的蓝牙音箱。该音箱可以接收来自手机或其他蓝牙设备的音频数据,并通过扬声器播放。该项目展示了如何使用 STM32 微控制器和 HC05 蓝牙模块设计一个简单的蓝牙音箱。易于实现功能实用可扩展性强如果您需要开发一个蓝牙音箱,该项目可以作为参考。

走向CTO的路上... 2471

Visual C++中使用gotoxy() / clrscr()

#include void clrscr(void);void clreol(void);void clreoscr(void);void gotoxy(int ,int );// --- Funktionsimplementierung/********************************************************************************

fengzar1984的专栏 2213

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

VC6不支持gotoxy()和clrscr()的替代办法

在C语言中,gotoxy()是用于在屏幕上定位光标到x,y的函数,今天看一个九九乘法口诀的源码需要用到这个函数。 而clrscr()函数的作用是清空屏幕上的内容,像cmd里的cls命令。 但是在VC6中却是不支持gotoxy()和clrscr()这两个函数的。 以下是这两个函数的替代方法: 1.gotoxy(); 先用以下代码定义gotoxy()函数: #include

wkl17的专栏 1408

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

C语言控制台交互编程:conio.h库核心函数与跨平台实践

在C语言编程中,控制台输入输出是基础且关键的技术环节。标准库函数如printf和scanf虽然功能强大,但在需要实时交互的场景中存在缓冲延迟的局限。conio.h库通过提供非缓冲输入和格式化输出能力,实现了对控制台底层的直接访问,其核心函数getch和kbhit能够实现无需回车确认的即时按键检测,极大提升了交互响应速度。在工程实践中,这一特性对于开发命令行工具、文本菜单系统及教学演示程序具有重要价值。然而,由于conio.h是Windows平台特有的非标准库,在跨平台开发中面临兼容性挑战。通过条件编译技术或

weixin_34245082的博客 441

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

BC++ 3.1经典开发环境:从DOS编程到现代迁移的实战指南

集成开发环境(IDE)与编译器是软件开发的基础工具,它们将代码编辑、编译、链接和调试等功能集成于一体,极大提升了开发效率。其核心原理在于通过预处理器、编译器、汇编器和链接器的协同工作,将高级语言源代码转换为机器可执行文件。在技术价值上,经典开发环境如BC++ 3.1不仅代表了特定历史时期的高效解决方案,更深刻体现了在有限硬件资源下对性能极致的追求,其轻量级设计、直接的内存管理模型和贴近硬件的编程模式,为理解计算机底层原理提供了绝佳实践。这类环境尤其适用于嵌入式系统、工控设备以及遗留代码维护等场景,其中对**

weixin_30512089的博客 438

C语言实现贪吃蛇(easyx)

C语言贪吃蛇

he30837993的博客 5237

如何在C/C++中定义坐标函数gotoxy()并灵活运用之

一、坐标函数的定义和使用 其实C中没有这个坐标函数,所以要自己定义,而自己定义就不一定叫gotoxy(),moveto()或position()等等自己起什么名字都可以。 首先是嵌入相关头文件的指令:#include<windows.h> 然后在主函数外定义此坐标函数: void gotoxy(int x,int y) { COORD p ; p.X=x; p.Y=y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPU

m0_z的博客 1万+

C++中的gotoxy函数(重写)

本文针对C++编程语言中gotoxy函数在控制台应用的光标定位作用,深入分析其跨平台实现差异与优化策略,旨在提升文本显示精度及界面动态更新效率,解决兼容性与性能问题,为游戏、监控及教学等场景的应用提供指导,促进控制台程序开发的优化。

如果没有特别说明,c++都是基于GCC-4.9.2运行的 1401

c++gotoxy

【代码】c++gotoxy。

wxnccc的博客 457
上一篇: WINCE EBOOT的配置方法
下一篇: EVC中透明控件的实现
sunwill_chen
博客等级 码龄19年 25粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值