system调整控制台大小的问题

2023-05-16

大一上学期结束,C语言老师发布了作业,我们组选择做一个图书管理系统

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qJ7I3a7w-1647434910334)(C:\Users\Asus\Desktop\课程设计\题干.PNG)]

程序几天编写好了,在优化代码过程中发现了一个关于控制台的问题

我们常用到system("mode con cols=数字1 lines=数字2")

数字1控制窗口的长,数字2控制窗口的宽

我在程序中写入system("mode con cols=60 lines=30");

在这里插入图片描述

改变了控制台窗口的大小

但是当我去尝试程序的功能时发现一个问题

system("mode con cols=60 lines=30");

在这里插入图片描述

程序中不含 system("mode con cols=60 lines=30");
在这里插入图片描述

我们可以清晰地看到前者没有滚动条,后者有。这样就导致一个问题,如果我们想美化控制台,则会出现一个问题,就是当我们大批量想查看数据时就无法拖动滚动条查看,这样的话,美化控制台这个行为直接拉了。

当然不能轻易放弃,我们组去查了查关于控制台发现

控制台分为控制台窗口大小和控制台缓冲区大小

控制台窗口掌管着CMD窗口大小,控制台缓冲区掌管着你能在CMD窗口中看到的数据(整个窗口中能拖动数据的面积),而system("mode con cols=数字1 lines=数字2") 这个玩意它默认设置控制台窗口和控制台缓冲区大小相同,所以我们要在这行代码后面重新定义控制台缓冲区。

如下:

头文件:#include<windos.h>

代码:HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleScreenBufferSize(hOut, {数字1,数字2});

第一行意思是定义一个句柄(资源标识符)取得控制台的窗口句柄

第二行意思是设置控制台缓冲区大小

数字1控制控制台缓冲区的宽,数字2控制缓冲区的高(数字越小滚动条越大,数字1,数字2就代表了缓冲区的面积)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mkrxXdc1-1647434910335)(C:\Users\Asus\Desktop\MarkDown\后端语言笔记\4.png)]

这样就解决了滚动条的问题

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

system调整控制台大小的问题 的相关文章

  • 如何防止用户更改系统日期/时间(在 Android 中)?

    我用谷歌搜索过 但我找不到任何建议来阻止用户更改 android 中的系统日期 时间 我们正在开发一个企业应用程序 我们希望阻止设备的用户能够设置时间设置 换句话说 我们想要设置一个策略来定义用户不能更改 Android 设备中的日期和时间
  • 在 Java 中在屏幕上绘图

    我想用 Java 创建一个帮助应用程序 其行为如下 每当通过全局快捷方式调用时 它都可以在屏幕上绘制一些文本 不是在其自己的应用程序窗口上 而是在屏幕顶部 类似的帖子是here https stackoverflow com questio
  • 获取所有系统壁纸

    有没有办法以编程方式获取所有android系统壁纸 我知道如何通过WallpaperManager 然后将其保存到磁盘 但我想知道是否有一种方法可以访问操作系统中包含的所有用作系统壁纸的图片 所有壁纸都位于启动器应用程序中 由于启动器的名称
  • 在 ruby​​ 中隐藏系统命令结果

    在 ruby 中隐藏系统命令的结果有多容易 例如 我的一些脚本运行 system curl 我不想看到下载的结果 为了让它继续工作system无需修改您的命令 system curl err gt File NULL Source http
  • 在 C++ 中查看 system() 调用的输出

    如何查看系统命令的输出 前任 int tmain int argc TCHAR argv system set PATH PATH C Program Files x86 myFolder bin system cd C thisfolde
  • 获取唯一的机器ID

    我想获得唯一的不可更改的机器 ID 例如计算机的处理器序列号 以便分发软件而无需复制 我尝试了处理器序列号和硬盘序列号 这些序列号在格式化并重新安装 Windows 后都发生了变化 知道如何获得计算机的不可更改的序列号吗 也许最简单的方法是
  • 在 Perl 中启动非等待后台进程

    我有一个 Perl 脚本 需要在后台启动另一个进程并退出 而不等待其他脚本完成 StackOverflow 上有很多线程介绍如何在 Perl 中等待或如何不等待其他编程语言 但我似乎找不到 Perl 的正确答案 我已经阅读了相当多的内容 并
  • 打开 Internet 属性并等待用户将其关闭 C#

    是否有可能打开 Internet 属性窗口 Code System Diagnostics Process p p System Diagnostics Process Start InetCpl Cpl 4 并等到用户关闭它 然后检查互联
  • 数据对齐:限制内存地址为数据类型大小的倍数的原因

    我理解数据对齐的一般概念 但我不理解的是对内存地址值的限制 强制为基础数据类型大小的倍数 这个答案 https stackoverflow com a 672482 11205473很好地解释了数据对齐 Quote 我们看一下内存映射 00
  • 如何检查命令是否可用或存在?

    我正在 Linux 上用 C 语言开发一个控制台应用程序 现在 它的可选部分 不是必需的 取决于可用的命令 二进制文件 如果我检查system 我越来越sh command not found作为不需要的输出 并将其检测为存在 那么我该如何
  • 如何用C++读取系统信息?

    我正在尝试使用 C 获取 Linux 系统上的操作系统版本 硬盘空间 可用磁盘空间以及已安装 RAM 等信息 我知道我可以使用system 运行不同的 Linux 命令并捕获它们的输出 这就是我目前正在做的 但我想知道是否有更好的方法 C
  • 使用系统命令从Windows下的C程序内部更改目录

    我遇到一个问题 我必须从 C 程序内部运行命令提示符命令 这是我所做的 include
  • 在 docker exec 命令中使用“*”

    我正在尝试在运行的 docker 容器中运行特定命令 Docker exec t containername1 ls tmp sth 作为回报我收到 ls cannot access tmp sth No such file or dire
  • 获取进程段的开始和结束 C/C++

    我需要获取以下进程段的开始和结束地址 代码 数据 堆栈 环境 我了解它如何位于内存中 但不知道如何使用 api 调用或其他方式获取它 我找到了如何使用此代码开始某些片段 include
  • 将参数传递给调试器中的 perl 文件并在系统执行的文件中设置断点

    因此 我使用 perl d file pl 在 perl 调试器中运行一个文件 但 file pl 也应该接受参数 如何向 file pl 提供参数 还有一个问题 file pl 中有这一行 system file2 pl 如果 file2
  • UML 图 - 在我的应用程序中发送电子邮件被视为外部系统

    我的应用程序有一个联系选项 它将打开带有按摩页面的电子邮件应用程序 并且消息接收者设置为应用程序支持电子邮件 我已附上我的意思的图片 我已将其编写为需求 但不确定如何在系统类图和用例图中说明它 我最初在用例图中所做的是 将我的用户 主要参与
  • 求解非线性方程组

    我正在尝试求解以下四个方程组 我尝试过使用 rootSolve 包 但似乎我无法通过这种方式找到解决方案 我正在使用的代码如下 model lt function x F1 lt sqrt x 1 2 x 3 2 1 F2 lt sqrt
  • Linux下单个目录下文件过多会怎样?

    如果一个目录中有大约 1 000 000 个单独的文件 大部分大小为 100k 其中没有其他目录和文件 是否会以任何其他可能的方式降低效率或产生缺点 ARG MAX 会对此提出异议 例如 rm rf 在目录中时 会说 参数太多 想要执行某种
  • Android 在 Nexus 设备上隐藏软键

    我想在用户启动我的应用程序时隐藏软键栏 主页 后退 菜单 我尝试使用 getWindow getDecorView setSystemUiVisibility View SYSTEM UI FLAG HIDE NAVIGATION 但不幸的
  • PHP中如何找出特定进程仍在运行

    我正在编写一个脚本 该脚本构建其他脚本的队列 并应该管理它们的启动 管理器脚本应该知道哪个子进程已经完成 因此它可以启动在队列中等待的其他脚本 我添加了一个 echo 获取每个子进程的进程 ID 所以我有我的子进程进程 ID 现在正在使用系

随机推荐