自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 关于mac下ubuntu安装20.04的无桌面版后开机后总是进入引导界面

mac使用vm按照ubuntu后重启就会重启,使用grub引导无效的情况解决方案

2022-11-09 00:04:52 620 1

原创 open-dis cpp实现 安装部署环境(windows)

open-dis cpp实现在windos下的实现

2022-10-25 15:19:16 669 2

原创 关于Mac通过vmfusion启动ubuntu总是需要重新安装的问题

重启虚拟机需要重新安装系统,方法是需要将启动方式由CD改为磁盘

2022-10-13 00:00:37 639

原创 ssh zhuyu.local @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOS

当ssh serverIP提示@@@@时,进入目录删除客户端保存的文件,即可恢复

2022-08-16 00:27:54 295

原创 关于MAC如通过虚拟机安装ubuntu

Mac(m1)安装vm和ubuntu

2022-08-13 09:35:00 6961 3

原创 Ftp连接显示connection refused问题的解决

当listen和listen_ipv6同时打开,就会出错,此时,注视掉一个即可。连接ftp提示connection refused。有可能是配置文件没有改好。

2022-08-13 08:59:55 10884 1

原创 C++之2.1 语句和程序结构

2.1 语句程序结构语句计算机程序是一系列告诉计算机该怎么做的语句。语句是一种指令,会导致程序执行某些操作。语句是C++程序中最常见的指令类型。这是因为它们是C++语言中最小的独立计算单位。在这方面,它们的行为与自然语言中的句子非常类似。当我们想将一个想法传递给其他人时,我们通常用句子写作或说话。在C++中,当我们想让计算机做某件事时,我们通常会编写语句。C++中大多数(但不是所有)语句都以分号结尾。如果您看见一行以分号结尾,它可能是一个语句。在C++高级语言中,单个语句可能会编译成许多机器语言指

2021-10-26 23:48:29 152

原创 1024 节日快乐

节日快乐 1024节日快乐,明天更新。今天对象生日,没来得及更新,保存在草稿箱了。

2021-10-24 23:40:14 76

原创 C++之 1.11 配置编译器:选择语言标准

1.11 配置编译器:选择语言标准有许多不同版本的C++可用(C++98、C++03、C++11、C++14、C++17、C++20等),您的编译器如何知道该使用哪个版本?通常,编译器将选择一个默认的标准(通常不是最新的语言标准)。如果您希望使用不同的语言标准(并且您可能会使用),您必须配置IDE/编译器才能这样做。语言标准的代码名称最终语言标准以最终确定的年份命名(例如C++17于2017年定稿)。然而,当商定新的语言标准时,还不清楚最终确认年份将在哪一年进行。因此,进行中的语言标准被授予代号,然

2021-10-23 11:49:29 2559

原创 C++之 1.10 配置编译器:警告和错误级别

1.10 配置编译器:警告和错误级别当您编写程序时,编译器将检查以确保您遵循来C++语言的规范(假如您已经关闭了编译器拓展,如1.9配置编译器:编译器拓展)。如果做了明确违反语言规则的事情,编译器在编译过程中会发出错误。同时提供包含错误的行号,以及一些关于预期内容和发现内容的文本。实际错误可能在该行,也可能在前一行。一旦您识别并修复了错误的代码行,您可以再次尝试编译。在其他情况下,编译器可能会发现看似错误的代码,但编译器无法确定(请记住座右铭“相信程序员”)。在这种情况下,编译器可以选择发出警告。警告

2021-10-23 11:31:18 553

原创 C++之 1.9 配置编译器:编译器拓展

1.9 配置编译器:编译器拓展C++标准定义了程序在特定情况下应该如何运行的规则。在大多数情况下,编译器会遵循这些规则。然而,许多编译器对语言进行了自己的更改。通常是为了增强与其他语言版本的兼容性。或出于历史原因,这些特定于编译器的行为称为编译器拓展。编写使用编译器拓展的程序运行您编写与C++标准不兼容的程序。使用非标准拓展的程序通常不会在其他编译器上编译。或者即使支持相同拓展,它们可能无法正常运行。令人沮丧的是,编译器拓展通常默认启用。这对新学习者尤其有害,他们可能会觉得一些有效的行为是官方C++标

2021-10-23 10:06:42 207

原创 C++之 1.8 配置编译器:构建配置

1.8 配置编译器:构建配置构建配置(也称为构建目标)是决定IDE如何构建项目的项目设置的集合。建构配置通常包括以下内容:可执行文件的名称,IDE将查找其他代码和库文件的目录,是保留还是删除调试信息,让编译器优化多少程序等等。通常,除非您有更改某些特点原因,否则将这些设置保存在默认设置。当您在IDE中创建新项目时,大多数IDE将为您设置两种不同 的建构配置:发布配置和调试配置。调试配置:即debug版本,旨在帮助您调试程序,通常是您在编写程序时使用的配置。此配置关闭所有优化,并包含调试信息,使您的程序

2021-10-23 09:50:42 176

原创 C++之 1.7 一些常见的C++问题

1.7 一些常见的C++问题在本节中,我们将讨论新程序员似乎非常有可能遇到的一些常见问题。这并不意味着汇编或者执行问题的全面清单,而是非常基本问题的解决方案的务实清单。一般运行时问题问:执行程序时,控制台窗口闪烁,然后立即关闭首先,添加顶部的代码行#include <iostream>#include <limits>其次,在main的函数末尾添加以下代码(return之前)std::cin.clear();std::ignore(std::numberic_li

2021-10-23 01:08:44 124

原创 C++之 1.6 编译您的第一个程序

1.7 编译您的第一个程序大家在学习C语言的时候,肯定都编过hello world,当然,我们也要走个形式,学习一下第一个程序。在我们编写第一个程序之前,我们需要学习如何在我们的集成开发环境(IDE)中创建新程序。项目要在IDE中编写C++程序,我们通常从创建一个新项目开始。项目是一个容器,可以保存您可以运行或者使用的所有的源代码文件、图像、数据文件等。。。这些文件是生成可执行文件所必须的。该项目还保存了各种IDE、编译器和链接器设置,并记住您中断的位置,以便稍后重新打开项目时,IDE的状态恢复到您中

2021-10-23 00:51:57 78

原创 C++之1.5 安装集成开发环境(IDE)

1.5 安装集成开发环境(IDE)**集成开发环境(IDE)**是一种软件,包含开发、编译、链接和调试程序所需的所有内容。使用典型的C++IDE,您将获得一个代码编辑器,该编辑器执行行号和语法高亮显示。许多(但不是所有)IDE都包含一个C++编译器和一个链接器,IDE知道如何与它们接口,以便将您的源代码转化为可执行文件。当您需要调试程序时,您可以使用集成调试器。此外,IDE通常捆绑成许多其他有用的编辑功能,如集成帮助、名称完成、自动格式化,有时还包括版本控制等。因此,虽然您可以单独完成所有这些事情,但

2021-10-22 22:27:11 231

原创 C++之1.4 编译器、链接器和库简介

1.4 编译器、链接器和库简介继续讨论上一课第四步:编译源代码为了编译C++程序,我们使用C++编译器。C++编译器按照顺序遍历程序中的每个源代码(.cpp)文件,并执行两项重要的任务:首先,它会检查您的代码,以确保它遵循C++语言的规则。如果没有,编译器将为您提供错误(和相应的行号),以帮助确定需要修复的内容。编译过程也将中止,直到错误修复。其次,它会将您的C++源码转换为对象文件的机器语言文件,对象文件通常命名为name.o或name.obj,其中名称与它生成的.cpp文件相同。第五步:链接

2021-10-22 22:03:16 145

原创 C++之1.3 C++开发简介

1.3 C++开发简介在我们编写和执行第一个C++程序前,我们需要更详细的了解C++程序是如何开发的。第一步:定义您想要解决的问题这是“什么”步骤,首先,您要明白您打算解决什么问题,想出您想要编程内容的最初想法可能是最简单的一步,也可能是最困难的一步。但从概念上讲,这是最简单的。您只需要一个可以很好地定义的想法,您已经为下一步做好准备了。以下是一些例子:我想写一个程序,让我输入许多数字,然后计算平均数我想写一个程序,生成一个2d迷宫,并让用户浏览它,如果他们达到目的,用户则会赢。我想写一个程

2021-10-22 16:44:54 286

原创 C++之1.2 C++简介

1.2C++简洁在C++之前,有CC语言由Bell Telephone实验室的Dennis Ritchie于1972年开发,主要作为一种系统编程语言(一种编写操作系统的语言)。Ritchie的主要目标是生成一种极简语言,易于编译,允许高效访问内存,生成高效代码,并且自包含(不依赖于其他程序)。对于高级语言,它旨在给程序员很多的控制权,同时仍然鼓励平台(硬件和操作系统)等独立性(即代码不必为每个平台编写)。C最终是如此高效和灵活,以至于在1973年,Ritchie和Ken Yhompson使用C重写了大

2021-10-22 16:19:09 142

原创 C++之1.1编程语言简介

1.1编程语言简介现代计算机速度惊人,而且速度一直越来越快。然而,计算机也有一些重大的约束:它们只理解有限的命令集,必须确切的告诉它们该怎么做。计算机程序(也称为应用程序)是计算机可以执行的一组指令,以执行某些任务。创建程序的过程称为编程。程序员通常通过生成源代码(通常缩写为代码)来创建程序,源代码是键入到一个或多个文本文件中的命令列表。组成计算机和执行程序的物理计算机部件的集合被称为硬件。当计算机程序加载到内存中,硬件依次执行每个指令时,被称为运行或执行程序。机器语言计算机的CPU无法理解C++

2021-10-22 15:39:55 180

原创 C++学习(目录)

哎,出差刚回来,这半年做了一个平台开发,都是基于别人的模板进行插件开发,现在回来很多C++知识点已经忘记了。那博主就开始系统得复习一遍C++吧。目录c++简介/入门这些教程简介编程语言简介C/C++简介C++kaifa简介编译器、链接器和库简介安装集成开发环境(IDE)一些常见的C++问题配置编译器:构建配置配置编译器:编译器拓展配置编译器:警告和错误级别配置编译器:选择语言标准简介/入门这些教程简介编程语言简介C/C++简介C++kaifa简介编译器、链接器和库简介安装集成开发环境(I

2021-10-22 14:52:39 2268

原创 QT的伙伴编辑模式(Edit Buddies)

QLabel标签和伙伴窗口不见包括一个标签和一个窗口部件,他们具有伙伴关系,指当用户激活标签的快捷键时,鼠标键盘的焦点将会转移到它的伙伴窗口部件上。只有QLabel标签对象才有伙伴窗口部件,也只有在该QLabe对象具有快捷键(在显示文本的某个字符前面添加一个前缀“&”, 就可以定义为快捷键)时,伙伴关系才有效。QLineEdit * ageLineEidt = new QLineEdit(this);QLabel * ageLabel = new Qlabel("&Age", this

2021-08-29 17:04:48 1291

原创 C++帮助手册之基本概念 (3)名字与标识符

标识符标识符是一个由数字、下划线、大小写拉丁字母和大多数Unicode字符组成的任意长度的序列。有效的标识符必须以一个非数字字符开头。标识符区分大小写,而且每一个字符都是起作用的。在声明中:可以用标识符来命名对象、引用、函数、枚举项、类型、类成员、命名空间、模板、模板特化、形参包、goto标号,以及其他实体,但是有以下的类外:关键词标识符不能用于其他目的:关键词只有在属性记号中可做他用,比如[[private]]是一个合法的属性,从C++11开始。作为特定运算符与标点符的代用不能用于其他目的

2021-02-28 19:03:26 451 3

原创 C++帮助手册之基本概念 (2)ASCII 码表

ASCII 码表下列码表含有全部 128 个 ASCII 十进制 (dec) 、八进制 (oct) 、十六进制 (hex) 及字符 (ch) 编码。

2021-02-23 00:27:19 653

原创 C++帮助手册之基本概念 (1)注释

从今天开始,和大家一起学习C++帮助手册注释注释是一种代码内文档,当被插入到程序中时,它们实际上会被编译器忽略;它们只需要被阅读源代码的人当做注记。语法(1) /*注释 */(2) // 注释1)通常被称为C风格或者多行注释2)通常被称为C++风格或者单行注释在翻译阶段3中,每段注释通过被替换为单个空白字符从程序中删除。C风格C风格注释通常用于注释大块的文本,也可以用于注释单行文本,要插入一个C风格注释,可以简单的以 /* 和 / 环绕文本,这样会使注释的内容被编译器忽视。尽管不是C+

2021-02-21 21:21:20 189

原创 QT全局键盘检测(即失焦后依旧可以检测到键盘事件)

大家搜到这个博客,肯定是业务或者学习中需要该功能。我是在设计一个项目中,涉及到按下T进行语音说话时设计到的。qt自带的QKeyEvent事件,并不是全局有效,只有在鼠标点击该窗口后才会产生对应的鼠标事件。对此我特地查了很多CSDN和公司的论坛,总结出网上主要有四种方法。1、就是使用grabKeyBoard(),经过测试,并不能达到预期的效果。这个实际效果是在多个窗口一起存在时,其中一个窗口需要一直获取键盘事件:可以在这个窗口中捕获键盘事件,即grabKeyboard(); 这样这个窗口可以一直获取键盘事件

2021-01-15 22:10:24 3299

原创 C语言使用printf进行格式输出(主要是颜色)分别在

格式如下:printf("\033[字背景颜色;字体颜色m 字符串 \033[0m" );例子:printf("\033[1m\033[45;33m HELLO_WORLD \033[0m\n");颜色代码: QUOTE:字背景颜色范围: 40–49 字颜色: 30—3940: 黑 30: 黑41: 红 31: 红42: 绿

2020-12-23 21:27:57 1448 1

原创 Effective+C++的55则条款(2)尽量以const、enum、inline代替#define

**尽量以const、enum、inline代替#define**总结:(1)对于单纯常量,以const或者enum代替宏(2)对于类似函数的宏,最好以inline代替宏提到这,就不得不提一下编译四步骤:预处理-编译-汇编-链接(1)预处理:去掉注释,进行宏替换(#define相关),头文件(#include) gcc -E test.c -o test.i(2)编译:不同平台选用的汇编语言是不一样的。编译将高级语言编译成汇编语言 gcc -S test.c -o test

2020-08-25 21:17:30 99

原创 简介正则表达式

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。正则的目的:给定一个正则表达式和另一个字符串,我们可以达到如下的目的:给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”):可以通过正则表达式,从字符串中获取我们想要的特定部分。正则表达式由普通字符和特殊字符(也称为元字符)组成的文字模式。普通字符:普通字符包括没有显式指定为元字符的

2020-08-24 21:03:18 227

原创 Effective+C++的55则条款(1)视C++为一个语言联邦

条款一、视C++为一个语言联邦打算直接将55个条款直接写一个总结的,想想还是分成各个模块吧,做一个系统的梳理,这本书当然是侯捷老师推荐的,因为最近在学习侯捷的C++面向对象高级开发,在导读的时候安利的,我问了我的同学还有同事,问他们看过这本书,有的人说看过,有的人说没有。果然,这算不算应验了:C++程序员分为两类,一类是看过Effective+C++,另一类是没有看过的。当然,这是个玩笑话。不过我最近因为刚入职嘛,也进了项目组,开始正式成为码农的一份子,确实有点感触,特别是看了这个视频还有这本书。这个视频

2020-08-23 20:43:57 950

原创 Ubuntu18.04关于搜狗拼音切换中文后全是乱码的问题解决

问题:搜狗拼音切换中文后全是乱码,再切换回英文,再切换回中文又正常了解决:进入fcitx配置然后不要把搜狗放在第一个,将键盘-汉语放在搜狗前面就行了...

2020-04-07 23:49:41 429 2

原创 C++设计模式之导读

设计模式概述:目标:高内聚低耦合核心思想: 隔离变化,封装变化(抽象)面向抽象类编程,客户端和服务器的解耦合用抽象解耦具体实现,将程序中可能变化的部分封装到具体类中,使用抽象技术,解藕程序和具体类的实现。这样,当未来的需求发生变化,我们就可以在不改动核心程序流程的情况下,扩展程序的实现。所谓的使用抽象技术也就是遵循面向接口编程原则变化:客户需求的变化,技术平台的变化,开发团队的变化,环境...

2020-02-29 16:31:48 91

原创 #pramga once 和 #ifndef 的区别:

#ifnodef 依赖于宏名字不能冲突;缺点就是,万一不同的头文件的宏名字不小心撞车,会让编译器找不到声明;#pramga once 由编译器提供保证;根据物理上是否是同一个文件;好处是我不需要想宏名;缺点上是拷贝一下,就被重复包含了;因为编译器每次都要打开头文件来判断这个头文件是否被包含,导致编译时间增加,所以越来越多的编译器现在选择使用#pramga once(微软的),大大提高了效率;...

2020-01-12 19:18:55 658

原创 C++和C部分区别

C和C++的区别:1、C89标准中的C语言不支持函数的默认值, C++支持函数默认值,且需要遵循从右向左赋初始值2、内联函数3、C语言中不存在函数重载,C++根据函数名参数个数参数类型判断重载,属于静多态,必须同一作用域下才叫重载4、C中const叫只读变量, 只是无法做左值的变量,比如数组的下标,C++中const是真实的常量,可以当数组的下标,但是也可能退化成c语言的常量,默认生成lo...

2020-01-12 18:45:27 170

原创 Linux_C编之(4)数组

数组变量在内存存放是有地址的,数组在内存存放也同样具有地址。对于数组来说,数组名就是数组在内存中存放的数组首元素的地址。(一)数组认知...

2019-10-24 16:21:58 141

原创 Linux_C编Makefile自动生成

在本文中,将给大家介绍如何使用 autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可以象常见的GNU程序一样,只要使用“./configure”,“make”,“make install”就可以把程序安装到Linux系统中去了。编译一个简单的源文件main.c,需要自动生成一个Makefile。以下是步骤:第一步:在某个目录下创建一个文...

2019-10-24 11:01:25 873

原创 shell脚本Syntax error: Bad for loop variable

在shell脚本中写for循环出现这个问题原因:从 ubuntu 6.10 开始,ubuntu 就将先前默认的bash shell 更换成了dash shell;其表现为 /bin/sh 链接倒了/bin/dash而不是传统的/bin/bash。解决办法:sudo dpkg-reconfigure dash选择no出现如下:接着运行:显示成功...

2019-10-23 17:15:16 142

原创 TypeError: 'module' object is not callable

pip更新后出现这个TypeError: ‘module’ object is not callable这个情况我慌了,连导包都显示TypeError: ‘module’ object is not callablepip和import相继失效,我删除了旧版本,用新版本覆盖旧版本,好像还是没有用。解决办法不敢更新了,我怕还是出事,等网上有确定的版本我再更吧,这个问题我已经解决了快两小时了...

2019-10-22 09:02:19 311

原创 Linux_C编之(3)语句

(三)语句从程序流程的角度来看,程序可以分为三种基本结构,即顺序结构、分支结构和循环结构,这三种基本结构可以组成所有的各种复杂程序。C语言提供了多种语句来实现这些结构,例如,通过if、switch、for、while、continue、break、return语句来实现,用来控制程序的执行。不同的控制语句有各自的规则,在不同的情况下要选择最合适的语句来进行流程控制。1、空语句只有分号“;” ...

2019-10-20 11:04:30 146

原创 Linux_C编程的库使用

静态库和动态库的制作从逻辑功能上看,程序的主体是由一系列函数组成的,所以编写程序的主要工作之一是实现函数。为了有效降低编程的工作量,编程系统会把一些非常基本、常用的函数集中到函数库中实现,如信息的打印函数、文件的打开或者关闭函数、内存空间的申请与释放函数、数学计算函数等。当程序需要使用函数库中某个函数时,就可以直接从库中调用。函数库中的使用方式分为静态链接和动态链接两种。静态链接是指编译系统在...

2019-10-20 09:58:43 148

原创 嵌入式Linux_C语言开发工具

C语言开发工具开发工具和操作系统之间是相互促进的、相互发展的,操作系统离不开软件开发的支持,软件开发工具也离不开操作系统这个平台。Linux操作系统下Linux开发工具的开源方式,可以让大家拥有更多的资源,得到更多的信息,对软件工具的发展起到了更大的促进作用。1、嵌入式Linux C语言开发概述C语言的特点:C语言具有出色的可移植性,能够在不同体系结构的软硬件平台上运行。C语言具有简洁...

2019-10-19 11:39:58 928

ubuntu for Mac (m1)

里面有VMware-Fusion-e.x.p-19431034_arm64.dmg,直接sudo dpkg -i VMware-Fusion-e.x.p-19431034_arm64.dmg 安装vmfusion,接着有几个镜像文件,有ubuntu16.04,ubuntu18.04,ubuntu20.04,ubuntu22.04,以及桌面版等,其他的版本也可以去镜像网站下。

2022-08-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除