Linux学习-c项目-俄罗斯方块

目录

vi 操作

printf输出颜色

stty命令


vi 操作

批量修改代码,用一个代码替代另一个代码

:从第几行,到第几行s/string1/string2/g

printf输出颜色

linux下终端的字符颜色由转义序列控制,是文本模式下的系统显示功能,与具体语言无关。
     转义序列以控制字符'ESC'开头。该字符的ASCII码十进制表示为27,十六进制表示为0x1B,八进制表示为033。多数转义序列超过两个字符, 故通常以'ESC'和左括号'['开头。该起始序列称为控制序列引导符,通常由'\033['或'\e['代替。

     格式为:

      printf("\033[字背景颜色 ; 字体颜色m 字符串 \033[0m");     后面的\033[0m 为控制码.

      颜色代码:

      字背景颜色范围: 40-49;

      字体颜色: 30-39;

      30/40:黑色          31/41:红色         32/42:绿色         33/43:黄色      
      33/34:蓝色          35/45:紫色         36/46:深绿色      37/47:白色

      ANSI控制码:

      \033[0m                                              关闭所有属性

      \033[1m                                              设置高亮度

      \033[4m                                               下划线

      \033[5m                                                闪烁

     \033[7m                                                 反显

     \033[8m                                                 消隐      
     \033[30m--/033[37m                             设置前景色

     \033[40m                                               设置背景色

     \033[nA                                                  光标上移n行

     \033[nB                                                  光标下移n行

    \033[nC                                                   光标右移n行

     \033[nD                                                  光标左移n行

     \033[y;xH                                                设置光标位置

     \033[2J                                                    清屏

     \033[K                                                      清除从光标到行尾的内容

     \033[?25l                                                 隐藏光标

     \033[?25h                                                显示光标

stty命令

配合system();可以在程序中使用

system("stty -echo");    关闭回显

  -a, --all             以可读性较好的方式输出全部当前设置
  -g, --save            以stty 可读取的格式输出当前全部设置
  -F, --file=设备       打开并使用指定设备代替标准输入
      --help            显示此帮助信息并退出
      --version         显示版本信息并退出

可选- 在设置前的指示中,* 标记出了非POSIX 标准的设置。以下系
统定义象征了哪些设置是有效的。

特殊字符:
* dsusp 字符   每当输入刷新时会发送一个用于终端阻塞信号的字符
   eof  字符    表示文件末尾而发送的字符(用于终止输入)
   eol  字符    为表示行尾而发送的字符
* eol2 字符    为表示行尾而发送的另一个可选字符
   erase 字符   擦除前一个输入文字的字符
   intr 字符    用于发送中断信号的字符
   kill 字符    用于擦除当前终端行的字符
* lnext 字符   用于输入下一个引用文字的字符
   quit 字符    用于发送退出信号的字符
* rprnt 字符   用于重绘当前行的字符
   start 字符   在停止后重新开启输出的字符
   stop 字符    停止输出的字符
   susp 字符    发送终端阻断信号的字符
* swtch 字符   在不同的shell 层次间切换的字符
* werase 字符  擦除前一个输入的单词的字符

特殊设置:
   N            设置输入输出速度为N 波特
* cols N       统治内核终端上有N 栏
* columns N    等于cols N
   ispeed N     设置输入速度为N 波特
* line N       设置行约束规则为N
   min N        和 -icanon 配合使用,设置每次一完整读入的最小字符数为<N>
   ospeed N     设置输出速度为N 波特
* rows N       向内核通告此终端有N 行
* size 根据内核信息输出当前终端的行数和列数
   speed        输出终端速度(单位为波特)
   time N       和-icanon 配合使用,设置读取超时为N 个十分之一秒

控制设置:
   [-]clocal    禁用调制解调器控制信号
   [-]cread     允许接收输入
* [-]crtscts   启用RTS/CTS 握手
   csN          设置字符大小为N 位,N 的范围为5 到8
   [-]cstopb    每个字符使用2 位停止位 (要恢复成1 位配合"-"即可)
   [-]hup       当最后一个进程关闭标准终端后发送挂起信号
   [-]hupcl     等于[-]hup
   [-]parenb    对输出生成奇偶校验位并等待输入的奇偶校验位
   [-]parodd    设置校验位为奇数 (配合"-"则为偶数)

输入设置:
   [-]brkint    任务中断会触发中断信号
   [-]icrnl     将回车转换为换行符
   [-]ignbrk    忽略中断字符
   [-]igncr     忽略回车
   [-]ignpar    忽略含有奇偶不对称错误的字符
* [-]imaxbel   发出终端响铃但不刷新字符的完整输入缓冲
   [-]inlcr     将换行符转换为回车
   [-]inpck     启用输入奇偶性校验
   [-]istrip    剥除输入字符的高8 位比特
* [-]iutf8     假定输入字符都是UTF-8 编码
* [-]iuclc     将大写字母转换为小写
* [-]ixany     使得任何字符都会重启输出,不仅仅是起始字符
   [-]ixoff     启用开始/停止字符传送
   [-]ixon      启用XON/XOFF 流控制
   [-]parmrk    标记奇偶校验错误 (结合255-0 字符序列)
   [-]tandem    等于[-]ixoff

输出设置:
* bsN          退格延迟的风格,N 的值为0 至1
* crN          回车延迟的风格,N 的值为0 至3
* ffN          换页延迟的风格,N 的值为0 至1
* nlN          换行延迟的风格,N 的值为0 至1
* [-]ocrnl     将回车转换为换行符
* [-]ofdel     使用删除字符代替空字符作填充
* [-]ofill     延迟时使用字符填充代替定时器同步
* [-]olcuc     转换小写字母为大写
* [-]onlcr     将换行符转换为回车
* [-]onlret    使得换行符的行为表现和回车相同
* [-]onocr     不在第一列输出回车
   [-]opost     后续进程输出
* tabN 水平制表符延迟的风格,N 的值为0 至3
* tabs 等于tab0
* -tabs        等于tab3
* vtN          垂直制表符延迟的风格,N 的值为0 至1

本地设置:
   [-]crterase  擦除字符回显为退格符
* crtkill      依照echoprt 和echoe 的设置清除所有行
* -crtkill     依照echoctl 和echol 的设置清除所有行
* [-]ctlecho   在头字符中输出控制符号("^c")
   [-]echo      回显输入字符
* [-]echoctl   等于[-]ctlecho
   [-]echoe    等于[-]crterase
   [-]echok     在每清除一个字符后输出一次换行
* [-]echoke    等于[-]crtkill 意义相同
   [-]echonl    即使没有回显任何其它字符也输出换行
* [-]echoprt   在"\"和"/"之间向后显示擦除的字符
   [-]icanon    启用erase、kill、werase 和rprnt 等特殊字符
   [-]iexten    允许POSIX 标准以外的特殊字符
   [-]isig      启用interrupt、quit和suspend 等特殊字符
   [-]noflsh    在interrupt 和 quit 特殊字符后禁止刷新
* [-]prterase  等于[-]echoprt
* [-]tostop    中止尝试向终端写入数据的后台任务
* [-]xcase     和icanon 配合使用,用转义符"\"退出大写状态

综合设置:
* [-]LCASE     等于[-]lcase
   cbreak       等于-icanon
   -cbreak      等于icanon
   cooked       等于brkint ignpar istrip icrnl ixon opost isig icanon eof                   eol 等的默认值
   -cooked      等于-raw
   crt          等于echoe echoctl echoke
   dec          等于echoe echoctl echoke -ixany intr ^c erase 0177 kill ^u
* [-]decctlq   等于[-]ixany
   ek           清除所有字符,将它们回溯为默认值
   evenp        等于parenb -parodd cs7
   -evenp       等于-parenb cs8
* [-]lcase     等于xcase iuclc olcuc
   litout       等于-parenb -istrip -opost cs8
   -litout      等于parenb istrip opost cs7
   nl           等于-icrnl -onlcr
   -nl          等于icrnl -inlcr -igncr onlcr -ocrnl -onlret
   oddp 等于parenb parodd cs7
   -oddp        等于-parenb cs8
   [-]parity    等于[-]evenp
   pass8        等于-parenb -istrip cs8
   -pass8       等于parenb istrip cs7
   raw          等于-ignbrk -brkint -ignpar -parmrk -inpck -istrip
                 -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany
                 -imaxbel -opost -isig -icanon -xcase min 1 time 0
   -raw 等于cooked
   sane 等于cread -ignbrk brkint -inlcr -igncr icrnl -iutf8
                -ixoff -iuclc -ixany imaxbel opost -olcuc -ocrnl onlcr
                -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
                isig icanon iexten echo echoe echok -echonl -noflsh
                -xcase -tostop -echoprt echoctl echoke,所有特殊字符均
                使用默认值
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/749001.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STL:List从0到1

&#x1f389;个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名乐于分享在学习道路上收获的大二在校生 &#x1f648;个人主页&#x1f389;&#xff1a;GOTXX &#x1f43c;个人WeChat&#xff1a;ILXOXVJE &#x1f43c;本文由GOTXX原创&#xff0c;首发CSDN&…

Spring Boot实现热部署有哪几种方式

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:SpringBoot 实现热部署有哪几种方式 Spring Boot实现热部署有几种方式,包括使用Spring Boot DevTools、Spring Loaded、JRebel等工具。以下将详细…

已解决org.apache.zookeeper.KeeperException.BadVersionException异常的正确解冲方法,亲测有效!!!

已解决org.apache.zookeeper.KeeperException.BadVersionException异常的正确解冲方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 目录 问题分析 报错原因 解决思路 解决方法 总结 博主v&#xff1a;XiaoMing_Java 问题分析 在使用Apache ZooKeeper进行…

MySQL-----事务

一 事务简介 事务是一组操作的集合&#xff0c;它是一个不可分割的工作单位&#xff0c;事务会把所有的操作作为一 个整体一起向系统提交或撤销操作请求&#xff0c;即这些操作要么同时成功&#xff0c;要么同时失败。 例如:银行转账 张三 ---(转账1000元)---> 李四 在进行…

.NET开源快速、强大、免费的电子表格组件

今天大姚给大家分享一个.NET开源&#xff08;MIT License&#xff09;、快速、强大、免费的电子表格组件&#xff0c;支持数据格式、冻结、大纲、公式计算、图表、脚本执行等。兼容 Excel 2007 (.xlsx) 格式&#xff0c;支持WinForm、WPF和Android平台&#xff1a;ReoGrid。 项…

while语句的实际应用(2)

3150&#xff1a;【例25.2】 26个兄弟姐妹2 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 6770 通过数: 4845 【题目描述】 26个字母26枝花&#xff0c;26个兄弟姐妹是一家&#xff0c;大写字母与小写字母不分家。试编一程序&#xff0c;按顺序输出26个小写英文…

linux配置大数据环境

linux配置大数据环境 修改主机名 hostnamectl set-hostname xxx配置 yum [rootlocalhost ~]# mkdir /mnt/cdrom [rootlocalhost ~]# df /mnt/cdrom 文件系统 1K-块 已用 可用 已用% 挂载点 /dev/sda3 39517336 7718416 31798920 20% /[rootlocalhost…

Spring Chache入门详解、配套小案例

简介&#xff1a;Spring Cache是一个框架&#xff0c;实现了基于注解的缓存功能&#xff0c;只需要添加一个注解就能实现缓存功能。 Spring Cache提供了一层抽象&#xff0c;底层可以切换不同的缓存实现&#xff0c;如下&#xff1a; EHCacheCaffeineRedis (这篇帖子&#xff…

下载指定版本的pytorch

下载网址&#xff1a;https://download.pytorch.org/whl/torch_stable.html 参考博客网址&#xff1a;https://blog.csdn.net/wusuoweiieq/article/details/132773977

基于C++的反射功能

需求&#xff1a; 利用C的发射机制&#xff0c;实现根据字符串创建实例对象。 代码&#xff1a; #ifndef OBJECT_H #define OBJECT_H#include <string> #include <map>typedef void* (*Constructor)();class CObjectFactory { public:static void registerClass…

分布式链路追踪(一)SkyWalking(2)使用

一、使用方法 1、简介 agent探针可以让我们不修改代码的情况下&#xff0c;对Java应用上使用到的组件进行动态监控&#xff0c;获取运行数据发送到OAP上进行统计和存储。agent探针在Java使用中是使用Java agent技术实现。不需要更改任何代码&#xff0c;Java agent会通过虚拟…

js基础API初学

事件监听 目标&#xff1a;能够给DOM元素添加事件监听 ■ 什么是事件&#xff1f; 事件是在编程时系统内发生的动作或者发生的事情 比如用户在网页上单击一个按钮 • 什么是事件监听&#xff1f; 就是让程序检测是否有事件产生&#xff0c;一旦有事件触发&#xff0c;就立即调…

【Git版本控制系统】:起步

目录 前言 版本控制 集中式与分布式的区别 Windows安装Git 核心 文件状态 工作区域 基本工作流程 配置用户信息 获取帮助 在线资源 前言 本篇文件的环境是Windows环境下实现。 在日常工作中git少不了&#xff0c;所以编写本篇文章介绍Git基础&#xff0c;专栏会不…

泰勒级数、海森矩阵、雅可比矩阵

泰勒级数 一元泰勒级数展开说明 多元泰勒级数展开说明 海森矩阵 海森矩阵说明 雅可比矩阵 雅可比矩阵说明

web学习笔记(三十二)

目录 1.函数的call、apply、bind方法 1.1call、apply、bind的相同点 1.2call、apply、bind的不同点 1.3call、apply、bind的使用场景 2. 对象的深拷贝 2.1对象的浅拷贝 2.1对象的深拷贝 1.函数的call、apply、bind方法 1.1call、apply、bind的相同点 在没有传参数时&…

OpenXR 超详细的spec--Chapter 1 Introduce

1.什么是OpenXR OpenXR是XR应用的一个API&#xff0c;它是app与runtime进程内或者进程外的接口。Runtime可以处理类似frame composition&#xff0c;外围设备管理、原始tracking information的功能。 Optionally, Runtime可以支持device layer plugins&#xff0c;允许通过共同…

C语言宏定义,内置宏,__FILE__,__LINE__,## 用法

​ 当然宏定义非常重要的&#xff0c;它可以帮助我们防止出错&#xff0c;提高代码的可移植性和可读性等。 下面列举一些成熟软件中常用得宏定义 1&#xff0c;防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H//头文件内容 … #endif2&#xff0c;重新定义一些…

Linux/secret

Enumeration nmap 第一次扫描发现系统对外开放了22&#xff0c;80和3000端口&#xff0c;端口详细信息如下 可以看到22端口对应的是ssh服务&#xff0c;80和3000都是http服务&#xff0c;80端口使用nginx&#xff0c;3000使用了Node.js TCP/80 可以先从80端口开始探索&…

ICSE 2024

Proceedings of the 46th IEEE/ACM International Conference on Software Engineering, ICSE 2024, Lisbon, Portugal, April 14-20, 2024. 第46届IEEE/ACM软件工程国际会议论文集&#xff0c;2024年4月14日至20日&#xff0c;葡萄牙里斯本。 1 Domain Knowledge Matters: Im…

网络原理(1)——UDP协议

目录 一、应用层 举个例子&#xff1a;点外卖 约定数据格式简单粗暴的例子 客户端和服务器的交互&#xff1a; 序列化和返序列化 xml、json、protobuffer 1、xml 2、json 3、protobuffer 二、传输层 端口 端口号范围划分 认识知名的端口号 三、UDP协议 端口 U…