首页
统计
留言
友链
更多
关于
推荐
B站主页
私有网盘
WP分站
ZBlog分站
聚合图床
企业邮箱
地大官网
Search
1
C++ 最大公约数函数__gcd()的用法及其朴素实现
586 阅读
2
一文弄懂搜索算法中的DFS和BFS
264 阅读
3
WordPress 博客主题推荐
187 阅读
4
C++ 中的各种进制转换函数汇总
155 阅读
5
C++ 中 using 的用法
152 阅读
笔记
教程
资源
网站
转载
登录
Search
标签搜索
C++
算法
网站
WordPress
资源
编程
全排列
进制转换
搜索
DFS
BFS
博客
STL
主题
张再筵
累计撰写
8
篇文章
累计收到
7
条评论
首页
栏目
笔记
教程
资源
网站
转载
页面
统计
留言
友链
关于
推荐
B站主页
私有网盘
WP分站
ZBlog分站
聚合图床
企业邮箱
地大官网
搜索到
3
篇与
的结果
WordPress 博客主题推荐
关于 WordPress 站点的搭建,请参考上篇文章(新手向)手把手教你搭建个人blog ,本文不做赘述。我们直接步入正题:1. Argon 主题作者 : @solstice23发布页面: argon-theme , argon-theme(国内)官方文档: 点击查看示范页面: 官方 Demo, 呐叽的blog网站截图:首页:文章:评论:2. Adams 主题3. 敬请期待……
2022年03月13日
187 阅读
0 评论
0 点赞
(新手向)手把手教你搭建个人blog
2022年3月8日更新,也就拖更了一个月。本教程面向的对象是 Web 新手,为尽可能扩大受众,语言会略显啰嗦,请谅解。以下为正文:首先,你需要一个域名我们搬出官方的定义:域名(英语:Domain Name),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。很拗口,没关系,通俗的说域名是IP地址的一层面具,用来帮助记忆并提升服务器安全性,比如本站的域名 zzaiyan.com。获取域名最直接的方法是向域名服务商(阿里云,腾讯云等)购买,读者可自行了解。其次,你需要一台云服务器我们首选的是云服务器(Elastic Compute Service),即ECS,作为通用服务器,能满足各种服务应用。对于以学习为目的建站的学生,这里推荐ECS的平替,如VPS,Lighthouse(即轻量应用服务器),它们在价格上有着巨大的优势,且性能足以满足大多数非商业需求。至于服务器的配置,我建议选购1核2G以上的服务器,能在保证流畅运行多个网站(低访问量)的同时,搭建一些其他应用,如私有云盘,邮箱服务,线上IDE等。关于云服务器系统选择购买服务器后,运营商会询问我们需要安装的系统镜像。为了节约系统资源,并提高一定的兼容性,这里推荐选择一些Linux发行版,如CentOS,Ubuntu,后文我将以 宝塔面板(基于CentOS 7.9)为例,演示相关程序的部署。大部分平台选购服务器时会提供初始系统,为节省安装时间,避免掉坑,建议选择已配置好宝塔面板的 Ubuntu 或 CentOS;关于如何在现有 Linux系统安装宝塔面板,此处不进行阐述,请自行查找现有教程。现在我们来熟悉服务器的管理面板服务器部署完毕后,我们可以从运营商(如腾讯云)的控制台查找服务器的公网IP地址。IP地址相当于服务器的门牌号,安全起见请勿随意暴露。登录服务器供应商网站,进入控制台,选择我们所购买的服务器,我们可以看到服务器的管理面板。下图为腾讯云服务器的概览页面:在服务器的管理面板,我们需要找到宝塔面板的默认登录账号密码并记录,以便后续操作。打开浏览器,输入 IP地址:8888/login 按回车,输入刚才记录的账号密码,我们便进入了宝塔面板的后台。下图为登录后的宝塔面板:宝塔面板功能众多,其中最为常用的便是管理网站,本文将对此进行重点阐述(也就是说别的功能都不讲)。让我们建立一个属于自己的站点在宝塔面板主页,我们点击左侧栏,选择“网站”页面,点击“添加站点”,在弹出的对话框中输入相关信息。网站域名填写我们此前购买的域名(如果没买可以先填公网IP),备注名随意,然后无脑下一步即可。这里我们在网站列表中找到我们刚创建的网站,点击右侧的设置按钮,进入“伪静态”选项卡,选择“wordpress”规则,然后保存。(该步骤的作用暂时不做讲解,界面如下图)我们还需要设置域名解析至此,我们建立了一个专属于自己的网站,但我们还无法对其进行访问。这时我们需要设置域名解析,通俗地说就是使你的域名指向服务器的地址,让浏览器正确识别这个名字所代表的服务器。我们登录购买域名的服务商平台(我使用的是阿里云,即万网),进入控制台管理域名,选择云解析DNS,依次点击新手引导、网站解析,并输入服务器公网IP地址保存即可。此处我示范的是阿里云域名,不同的服务商管理界面具体操作大同小异,相信读者们能够正确设置解析。这时候,我们使用任何一台联网的Web设备,输入该域名即可访问到我们的页面,效果如下:当我们看到这个界面,说明目前为止我们的操作都正确无误,服务器和DNS都在正常工作。接下来,我们需要部署网站程序此时我们虽然拥有了一个可以正常访问的网站,但它目前只有相当朴素的几句提示词,没有任何实质内容,所以我们需要部署网站程序来实现美观的界面和各式各样的功能。作为基础薄弱的学生,让我们从零开始写出一个博客网站无疑是困难的(其实是根本不会),所幸有众多前辈开发了大量成熟的网站框架,或称之为CMS(内容管理系统),仅博客类就有 WordPress、Z-Blog、Typecho 等常用CMS。作为最为大众,也是二次开发最为成熟的CMS,WordPress无疑是最适合新手使用的,接下来,我以此为例,演示网站代码的部署。首先我们访问 WordPress 的官网通过搜索引擎检索 WordPress 、直接访问其 官方网站 ,或直接 点我下载 ,我们可以轻松得到最新版WP的安装包(下载的zip文件约20MB大小)。其实我们也可以跳过下载安装包的步骤,直接调用服务器远程下载,下文我们将介绍到。让我们回到宝塔面板登录宝塔面板,通过左侧栏进入“文件”页面,进入我们之前添加站点时创建的目录,如下图:我们点击左上角的上传按钮,选择我们此前下载的安装包文件,或点击远程下载按钮,输入文件 URL https://cn.wordpress.org/latest-zh_CN.zip ,点击确认后稍作等待,zip 文件将被下载到服务器中。下载完成后,我们在文件目录中右键压缩包,解压文件到当前目录,随后目录中会新增 wordpress 文件夹,此时我们删除其他文件,如下图:然后我们进入 wordpress 文件夹,全选文件,将其剪切到上一级目录,以便后续的安装。进行上述操作后,我们的文件目录如下:至此我们已经安装好网站程序,在执行安装程序前,我们还需要建立一个数据库。为网站建立一个数据库回到宝塔面板首页,点击左侧栏的“数据库”,在数据库界面点击添加数据库,设置数据库名,用户名和密码(宝塔面板会保存下来,随时可以查看),点击确认即可成功创建。该步配图略。现在,我们执行网站的安装程序打开浏览器,输入我们的域名(也可能是 IP 地址),我们便能看到 WordPress 的安装程序,界面如下:在安装程序中,输入我们刚才建立的数据库的信息,然后再对网站的相关信息和管理员账户进行设置,点击安装,随后我们会进入 WordPress 的后台界面,输入管理员账号密码登录后,我们便来到了 WordPress 的仪表盘,如下图所示:如果进行到现在一切顺利,那么恭喜你,我们已经成功的建立了一个 WordPress 站点,我们将光标移至仪表盘左上角,点击查看站点即可访问我们的网站。笔者安装时,WordPress 的默认主题如下:若想使网站更美观,可以在仪表盘中修改网站主题,建议筛选 Blog 相关的主题,以适应我们的写作需要。打个广告:下一篇博客将会推荐 WordPress 网站主题,并提供相关示范页面,敬请期待……(文章已推出,链接在文末)为你的网站添加文章作为个人博客,最最重要的便是内容。我们现在有了网站,但除了《你好,世界》外,还没有任何文章,下面我们回到 WordPress 的仪表盘,为网站添加文章并进行写作。在浏览器中输入 http://你的域名/wp-admin/ 即可登录进入仪表盘,点击左侧栏中的“文章” “写文章” 便能进入写作界面。WordPress 默认的写作以板块为单位,能方便地插入图片、链接和引用等内容,我们随便撰写了一篇文章,样式如下:完成写作后点击发布,我们的文章便被保存于后端,并出现在网站首页,随时随地可以被访问。打开我们的网站首页,可以清晰地看到我们刚刚发表的文章,首页展示的内容也可以在仪表盘中自主修改。(本文完结)引申阅读: WordPress 博客主题推荐
2022年02月05日
119 阅读
0 评论
1 点赞
2022-02-03
C++ 中的各种进制转换函数汇总
一,指定格式输出1.在C中,按指定进制格式输出如下,printf("%05o\n",35); //按八进制格式输出,保留5位高位补零 printf("%03d\n",35); //按十进制格式输出,保留3位高位补零 printf("%05x\n",35); //按十六进制格式输出,保留5位高位补零2.在C++中,按指定进制格式输出如下,#include <bitset> #include<iostream> using namespace std; int main() { cout << "35的8进制:" << std::oct << 35<< endl; cout << "35的10进制:" << std::dec << 35 << endl; cout << "35的16进制:" << std::hex << 35 << endl; cout << "35的2进制:" << bitset<8>(35) << endl; //<8>:表示保留8位输出 return 0; }二,C/C++各种进制转换库函数一)任意2-36进制数转化为10进制数。建议自己写函数,代码如下:int Atoi(string s,int radix) //s是给定的radix进制字符串 { int ans=0; for(int i=0;i<s.size();i++) { char t=s[i]; if(t>='0'&&t<='9') ans=ans*radix+t-'0'; else ans=ans*radix+t-'a'+10; } return ans; } 1.strtol()函数() 函数原型:long int strtol(const char nptr, char *endptr, int base) base是要转化的数的进制,非法字符会赋值给endptr,nptr是要转化的字符,例如: #include<cstdio> int main() { char buffer[20]="10549stend#12"; char *stop; int ans=strtol(buffer, &stop, 8); //将八进制数1054转成十进制,后面均为非法字符 printf("%d\n",ans); printf("%s\n", stop); return 0; } 输出结果:5569stend#12 注意: ①如果base为0,且字符串不是以0x(或者0X)开头,则按十进制进行转化。 ②如果base为0或者16,并且字符串以0x(或者0X)开头,那么,x(或者X)被忽略,字符串按16进制转化。 ③如果base不等于0和16,并且字符串以0x(或者0X)开头,那么x被视为非法字符。 ④对于nptr指向的字符串,其开头和结尾处的空格被忽视,字符串中间的空格被视为非法字符。二)将10进制数转换为任意的n进制数,结果为char型。建议自己写,代码如下:string intToA(int n,int radix) //n是待转数字,radix是指定的进制 { string ans=""; do{ int t=n%radix; if(t>=0&&t<=9) ans+=t+'0'; else ans+=t-10+'a'; n/=radix; }while(n!=0); //使用do{}while()以防止输入为0的情况 reverse(ans.begin(),ans.end()); return ans; } 1.itoa()函数(可以将一个10进制数转换为任意的2-36进制字符串) 函数原型:char*itoa(`int value,char*string,`int radix); 例如:itoa(num, str, 2); num是一个int型的,是要转化的10进制数,str是转化结果,后面的值为目标进制。#include<cstdio> #include<cstdlib> int main() { int num = 10; char str[100]; _itoa(num, str, 2); //c++中一般用_itoa,用itoa也行, printf("%s\n", str); return 0; }2.sprintf()函数(可以将一个10进制数转换为指定格式的n进制字符串)函数原型:int sprintf( char buffer, const char format, [ argument] … );#include<cstdio> int main() { char s[100]={0}; sprintf(s, "%d", 123); //十进制输出产生"123" sprintf(s, "%4d%4d", 123, 4567); //指定宽度不足的左边补空格,产生:" 1234567" sprintf(s, "%8o", 123); //八进制输出,宽度占8个位置 sprintf(s, "%8x", 4567); //小写16 进制,宽度占8 个位置,右对齐 sprintf(s, "%10.3f", 3.1415626); //产生:" 3.142" int i = 100; sprintf(s, "%.2f", i); //注意这是不对的 sprintf(s, "%.2f", (double)i); //要按照这种方式才行 return 0; }三)使用字符串流stringstream(头文件#include<sstream>) 1.将八,十六进制转十进制。#include<iostream> #include<string> #include<sstream> using namespace std; int main(void) { string s="20"; int a; stringstream ss; ss<<hex<<s; //以16进制读入流中 ss>>a; //10进制int型输出 cout<<a<<endl; return 0; } //输出:322.将十进制转八,十六进制。#include<cstdio> #include<iostream> #include<string> #include<sstream> using namespace std; int main(void) { string s1,s2; int a=30; stringstream ss; ss<<oct<<a; //10进制转成八进制读入流中,再以字符串输出 ss>>s1; cout<<s1<<endl; //输出:36 ss.clear(); //不清空可能会出错。 ss<<hex<<a; //10进制转成十六进制读入流中,,再以字符串输出 ss>>s2; cout<<s2<<endl; //输出:1e return 0; }
2022年02月03日
155 阅读
0 评论
0 点赞