文章目录:
官网:EasyX Graphics Library for C++
参考
51:easyx保姆级教程
下载
安装easyx环境:EasyX Graphics Library for C++——>右上侧点击下载安装在
安装程序会自动检测您已经安装的 VC 版本,并根据您的选择将对应的 .h 和 .lib 文件安装至 VC 的 include 和 lib 文件夹内
编译器 VS或者VC:编译环境:Visual C++ 6.0,Visual Studio 2008 至 Visual Studio 2022 (x86 & x64)
使用
启动 Visual C++,创建一个空的控制台项目(Win32 Console Application),然后添加一个新的代码文件(.cpp),并引用 graphics.h 头文件
// 引用图形库头文件 #include<easyx.h> //这个是只包含最新的API(函数接口) #include<graphics.h> //这个头文件包含了上面的,还包含了已经不推荐使用的函数 #include <conio.h> int main() //画圆的例子 { initgraph(640, 480); // 创建绘图窗口,大小为 640x480 像素 circle(200, 200, 100); // 画圆,圆心(200, 200),半径 100 _getch(); // 按任意键继续 closegraph(); // 关闭绘图窗口 return 0; }
#define _CRT_SECURE_NO_WARNINGS 1 //用来消除由于函数的安全性导致的的报错 // 引用图形库头文件 #include<easyx.h> //这个是只包含最新的API(函数接口) #include<graphics.h> //这个头文件包含了上面的,还包含了已经不推荐使用的函数 #include<stdio.h> //getchar的头文件 void change() { //设置图形窗口 //窗口定义HWND hand 函数GetHWnd()获取窗口信息 HWND hnd = GetHWnd(); //设置窗口标题内容SetWindowTex(类型变量名,修改内容) SetWindowText(hnd,"很高兴认识你"); //设置提示窗口:MessageBox(类型变量名,提示内容) int is_ok = MessageBox(hnd,"我是消息框","要不要关闭我",MB_OKCANCEL); if(is_ok == IDOK) { printf("你点击了OK\n"); } else if(is_ok == IDCANCEL) { printf("你点击了cancel\n"); } } int main() { /*创建窗口函数:initgraph(宽度,高度)*/ /*窗口的左上角是坐标原点,x轴向右增大,y轴向下增大,不包括标题栏*/ initgraph(520, 520);//宽520,高520 //initgraph(520, 520,SHOWCONSOLE);//宽520,高520 /*设置背景颜色:默认为黑色*/ setbkcolor(WHITE); /*清除系统之前默认的黑色背景*/ cleardevice(); change();//调用 /*缓冲函数getchar()让窗口得以持续显示*/ getchar(); /*关闭窗口函数:closegraph()*/ closegraph(); return 0; }
#define _CRT_SECURE_NO_WARNINGS 1 //用来消除由于函数的安全性导致的的报错 // 引用图形库头文件 #include<easyx.h> //这个是只包含最新的API(函数接口) #include<graphics.h> //这个头文件包含了上面的,还包含了已经不推荐使用的函数 #include<stdio.h> //getchar的头文件 int main() { /*创建窗口函数:initgraph(宽度,高度)*/ /*窗口的左上角是坐标原点,x轴向右增大,y轴向下增大,不包括标题栏*/ initgraph(520, 520);//宽520,高520 /*设置背景颜色:默认为黑色*/ setbkcolor(WHITE); /*清除系统之前默认的黑色背景*/ cleardevice(); //设置线条的函数setlinecolor(颜色):线条颜色默认为白色 setlinecolor(BLACK); //画圆形 //画一个圆(圆心的横坐标,圆心的纵坐标,圆的半径) circle(50, 50, 50); //填充背景颜色setfillcolor(颜色):默认为白色 setfillcolor(BLUE); //有边框实心圆fillcircle(圆心的横坐标,圆心的纵坐标,圆的半径) fillcircle(50, 150, 50);//有边框 //无边框的实心圆solidcircle(圆心的横坐标,圆心的纵坐标,圆的半径) solidcircle(50, 250, 50);//无边框 //点:putpixel(x,y,color); putpixel(100,100,BLUE); //线 //line(x1,y1,x2,y2); //起始坐标,终止坐标 //可以使用getwidth() gethight()获取窗口的宽度和高度 line(10,10,80,80); //设置线条颜色setlinecolor() setlinecolor(BLUE); //样式setlinestyle(样式,宽度); /*样式 #define PS SOLID 0 #define PS DASH 1 #define PS DOT 2 #define PS DASHDOT 3 #define PS DASHDOTDOT 4 #define PS NULL 5 #define PS INSIDEFRAME 6 #define PS USERSTYLE 7 #define PS ALTERNATE 8 #define PS STYLE MASK 0x0000000F*/ setlinestyle(8,8); //正矩形 //左上角坐标,右下角坐标---->无填充矩形rectangle(x1,y1,x2,y2); rectangle(150,150,250,250); //颜色填充setfillcolor(); setfillcolor(BROWN); //填充矩形 //fillrectangle(); //无边框填充矩形solidrectangle(); //solidrectangle(); //圆角矩形 //roundrect(x1,y1,x2,y2,宽度,高度); roundrect(200,200,300,300,10,10); //fillroundrect()和solidroundrect() //椭圆ellipse(x1,y1,x2,y2);矩形左上角和右下角坐标,椭圆就是该矩形的内切 ellipse(150,150,250,450); //fillellipse()和solidellipse() /*缓冲函数getchar()让窗口得以持续显示*/ getchar(); /*关闭窗口函数:closegraph()*/ closegraph(); return 0; }
#define _CRT_SECURE_NO_WARNINGS 1 //用来消除由于函数的安全性导致的的报错 // 引用图形库头文件 #include<easyx.h> //这个是只包含最新的API(函数接口) #include<graphics.h> //这个头文件包含了上面的,还包含了已经不推荐使用的函数 #include<stdio.h> //getchar的头文件 int main() { /*创建窗口函数:initgraph(宽度,高度)*/ /*窗口的左上角是坐标原点,x轴向右增大,y轴向下增大,不包括标题栏*/ initgraph(520, 520);//宽520,高520 /*设置背景颜色:默认为黑色*/ setbkcolor(WHITE); /*清除系统之前默认的黑色背景*/ cleardevice(); //设置文字颜色settextcolor(颜色):文字的颜色默认为白色 settextcolor(RED);//文字格式为红色 //设置文字大小settextstyle(高度,宽度 如果为0则自动匹配,字符的形式比如楷体宋体) settextstyle(20, 0, "楷体");//文字的大小,紧凑程度,字体的样式 //设置当前字体的颜色setcolor(颜色) setcolor(GREEN); //设置字体的背景setbkmode(颜色):背景默认为白色会掩盖其他物体 setbkmode(TRANSPARENT); //透明 //显示位置:fillrectangle(矩形左部 x 坐标,矩形顶部 y 坐标,矩形右部 x 坐标,矩形底部 y 坐标) ; //打印文字outtextxy(文字的横坐标,文字的纵坐标,文字的内容) outtextxy(100, 100, "文字在图形的居中显示1"); //文字在图形的居中显示 //initgraph(520, 520) fillrectangle(100, 100, 500, 500) //求字体的宽度与高度 char arr[] = "文字在图形的居中显示1"; int width = textwidth(arr); int height = textheight(arr); //求所加坐标的值 //所加x坐标的值 int x = (520 - width) / 2; //所加y坐标的值 int y = (520 - height) / 2; outtextxy(x, y, "文字在图形的居中显示2"); /*缓冲函数getchar()让窗口得以持续显示*/ getchar(); /*关闭窗口函数:closegraph()*/ closegraph(); return 0; }
#define _CRT_SECURE_NO_WARNINGS 1 //用来消除由于函数的安全性导致的的报错 // 引用图形库头文件 #include<easyx.h> //这个是只包含最新的API(函数接口) #include<graphics.h> //这个头文件包含了上面的,还包含了已经不推荐使用的函数 #include<stdio.h> //getchar的头文件 #include<conio.h> //键盘 int main() { /*创建窗口函数:initgraph(宽度,高度)*/ /*窗口的左上角是坐标原点,x轴向右增大,y轴向下增大,不包括标题栏*/ initgraph(520, 520,SHOWCONSOLE);//宽520,高520,这里的第三个参数为显示控制台窗口 /*设置背景颜色:默认为黑色*/ setbkcolor(WHITE); int x = 200, y = 300; //这个函数用于开始批量绘图:执行后,任何绘图操作都将暂时不输出 void BeginBatchDraw(); while (1) { /*清除系统之前默认的黑色背景*/ cleardevice(); //填充红色背景 setfillcolor(RED); //无边框实心圆 solidcircle(x, y, 50); //停止闪烁:这个函数用于执行未完成的绘制任务。比EndBatchDraw更稳定 FlushBatchDraw(); //第一种 按键交互:键盘响应ascll码值 //获取键盘信息_kbhit() 头文件:conio.h /*if (_kbhit()) { //输出键盘信息:_getch() 头文件:conio.h char key = _getch(); printf("%d %c\n", key, key);//可以获取键的ASCII值 switch (key) { case 72://上键的ASCII值 y -= 5; break; case 80://下键的ASCII值 y += 5; break; case 75://左键的ASCII值 x -= 5; break; case 77://右键的ASCII值 x += 5; break; } }*/ //第二种 键盘异步交互:方法调用(更加丝滑) if (GetAsyncKeyState(VK_UP)) { y--; } if (GetAsyncKeyState(VK_DOWN)) { y++; } if (GetAsyncKeyState(VK_LEFT)) { x--; } if (GetAsyncKeyState(VK_RIGHT)) { x++; } } /*缓冲函数getchar()让窗口得以持续显示*/ getchar(); /*关闭窗口函数:closegraph()*/ closegraph(); return 0; }
#define _CRT_SECURE_NO_WARNINGS 1 //用来消除由于函数的安全性导致的的报错 // 引用图形库头文件 #include<easyx.h> //这个是只包含最新的API(函数接口) #include<graphics.h> //这个头文件包含了上面的,还包含了已经不推荐使用的函数 #include<stdio.h> //getchar的头文件 #include<time.h> #include<conio.h> //阻塞函数getch()不需要回车确认输入 //球定义 struct Ball { int x; int y; int r; //增量 int dx; int dy; }; struct Ball ball={400,400,15,5,-4}; struct Ball myball={500,500,15,5,5}; //画球 void DrawBall(struct Ball ball){ setfillcolor(RED); solidcircle(ball.x,ball.y,ball.r); } //定时器:去控制自动移动东西 #include<time.h> // 时间间隔 id int Timer(int duration,int id){ //开始时间 static int startTime[10]; //结束时间 int endTime=clock(); //clock()统计程序运行到当前代码的时间 if (endTime-startTime[id]>duration) { startTime[id]=endTime; return 1; } return 0; } //移动球(自己动) void MoveBall(){ //相撞 左壁 右壁 if(ball.x-ball.r<=0||ball.x+ball.r>=800){ ball.dx=-ball.dx; //反射:增量发生变化 } //相撞 上壁 下壁 if(ball.y-ball.r<=0||ball.y+ball.r>=800){ ball.dy=-ball.dy; } ball.x +=ball.dx; ball.y -=ball.dy; } //按键交互:移动球(按键控制)会发生阻塞 void KeyDown(){ //获取用户按键 int userKey=_getch(); switch (userKey) { case 'w': case 'W': case 72: myball.y -=5; break; case 's': case 'S': case 80: myball.y +=5; break; case 'a': case 'A': case 75: myball.x -=5; break; case 'd': case 'D': case 77: myball.x +=5; break; } } //键盘异步交互:不会发生阻塞 void KeyDown2(){ if (GetAsyncKeyState(VK_UP)) { myball.y -=5; } if (GetAsyncKeyState(VK_DOWN)) { myball.y +=5; } if (GetAsyncKeyState(VK_LEFT)) { myball.x -=5; } if (GetAsyncKeyState(VK_RIGHT)) { myball.x +=5; } } int main() { /*创建窗口函数:initgraph(宽度,高度)*/ /*窗口的左上角是坐标原点,x轴向右增大,y轴向下增大,不包括标题栏*/ initgraph(800, 800); /*设置背景颜色:默认为黑色*/ setbkcolor(WHITE); /*清除系统之前默认的黑色背景*/ cleardevice(); //开始双缓冲贴图:解决一闪一闪的问题 BeginBatchDraw(); //控制移动 while (1) { //刷新 cleardevice(); //先画球 DrawBall(ball); DrawBall(myball); if(Timer(20,0)) //球自己移动球 MoveBall(); //鼠标控制球移动 //if (_kbhit()) //判断阻塞:判断存在按键再去处理 //{ // KeyDown(); //} //if(Timer(20,1)) //键盘异步交互 KeyDown2(); //Sleep(20); //休眠一下 也是阻塞函数 //显示每一帧 FlushBatchDraw(); } //结束双缓冲贴图 EndBatchDraw(); /*缓冲函数getchar()让窗口得以持续显示*/ getchar(); /*关闭窗口函数:closegraph()*/ closegraph(); return 0; }
#define _CRT_SECURE_NO_WARNINGS 1 #include<graphics.h> #include<stdio.h> #include<conio.h> int main() { initgraph(520, 520,SHOWCONSOLE); setbkcolor(BLACK); cleardevice(); while (1) { //判断有无鼠标信息 if (MouseHit()) { //读取鼠标信息 //鼠标信息的类型:MOUSEMSG //定义变量(举例):MOUSEMSG msg; //读取鼠标信息的函数:GetMouseMsg() MOUSEMSG msg = GetMouseMsg(); //消息处理 switch (msg.uMsg) //获取当前鼠标消息 { case WM_LBUTTONDOWN: //鼠标左键 outtextxy(200, 200, "鼠标左键"); printf("左键坐标(%d,%d)", msg.x, msg.y); //msg.x获取鼠标的横坐标 msg.y获取鼠标的纵坐标 break; case WM_RBUTTONDOWN: //鼠标右键 outtextxy(100, 100, "鼠标右键"); printf("右键坐标(%d,%d)", msg.x, msg.y); break; case WM_MBUTTONDOWN: //中键按下 printf("中键按下\n"); break; case WM_MOUSEWHEEL: //滚轮滑动 printf("%d滚轮滑动\n",msg.wheel); //获取滚轮滑动方向,正朝屏幕,负朝自己 break; case WM_MOUSEMOVE: //鼠标移动 printf("鼠标移动\n"); break; } } } getchar(); closegraph(); return 0; } /*MOUSEMSG结构体 struct MOUSEMSG { UINT uMsg; 获取当前鼠标消息 bool mkCtrl :l; Ctrl 键是否按下 bool mkShift :l; Shift 键是否按下 bool mkLButton :l; 鼠标左键是否按下 bool mkMButton :l; 鼠标中键是否按下 bool mkRButton :l; 鼠标右键是否按下 short x; 当前鼠标 x 坐标 short y; 当前鼠标 坐标 short wheel; 鼠标滚轮滚动值 (120 的倍数) }*/
#define _CRT_SECURE_NO_WARNINGS 1 //用来消除由于函数的安全性导致的的报错 // 引用图形库头文件 #include<easyx.h> //这个是只包含最新的API(函数接口) #include<graphics.h> //这个头文件包含了上面的,还包含了已经不推荐使用的函数 #include<stdio.h> //getchar的头文件 int main() { initgraph(800, 600,SHOWCONSOLE); //setbkcolor(WHITE); cleardevice(); //定义ExMessage类型的变量去存储鼠标消息 ExMessage msg; while (true) { //获取鼠标消息peekmessage(&变量) while (peekmessage(&msg)) { //讨论鼠标消息 switch (msg.message) //区分鼠标消息的类型:msg.message { //鼠标的当前坐标:msg.x msg.y case WM_LBUTTONDOWN: circle(msg.x,msg.y,10); break; case WM_RBUTTONDOWN: rectangle(msg.x-5,msg.y-5,msg.x+5,msg.y+5); break; } } } getchar(); closegraph(); return 0; }
#include<time.h> //定时器:去控制自动移动东西 #include<time.h> // 时间间隔 id int Timer(int duration,int id){ //开始时间 static int startTime[10]; //结束时间 int endTime=clock(); //clock()统计程序运行到当前代码的时间 if (endTime-startTime[id]>duration) { startTime[id]=endTime; return 1; } return 0; } int main() { /*创建窗口函数:initgraph(宽度,高度)*/ /*窗口的左上角是坐标原点,x轴向右增大,y轴向下增大,不包括标题栏*/ initgraph(800, 800); /*设置背景颜色:默认为黑色*/ setbkcolor(WHITE); /*清除系统之前默认的黑色背景*/ cleardevice(); //调用 if(Timer(20,0)) //球自己移动球 MoveBall();//这是一个你自己写的方法 /*缓冲函数getchar()让窗口得以持续显示*/ getchar(); /*关闭窗口函数:closegraph()*/ closegraph(); return 0; }
图片需要和程序放在一个路径之下
#define _CRT_SECURE_NO_WARNINGS 1 //用来消除由于函数的安全性导致的的报错 // 引用图形库头文件 #include<easyx.h> //这个是只包含最新的API(函数接口) #include<graphics.h> //这个头文件包含了上面的,还包含了已经不推荐使用的函数 #include<stdio.h> //getchar的头文件 int main() { initgraph(800, 600,SHOWCONSOLE); setbkcolor(WHITE); cleardevice(); //原样贴图 //定义图片变量去表示图片 IMAGE mage; //读取加载图片:loadimage(图片地址,"图片路径 相对 绝对",int nwidth缩放的宽度,int nheight缩放的高度) loadimage(&mage, "./images/bk.png",800,600); //显示图片:putimage(图片的横坐标,图片的纵坐标,图片地址) putimage(0, 0, &mage); //透明贴图(去掉一张图片原本的背景):通过图像的颜色二进制运算达到去背景效果 //要处理扣图片:黑白背景 IMAGE test[2]; //掩码图加载 loadimage(test+0,"./images/1.png",800,600); //背景图加载 loadimage(test+0,"./images/2.png",800,600); //贴图 putimage(100,100,test+0,SRCAND); //贴掩码图 putimage(100,100,test+1,SRCPAINT); //贴背景图 //双缓冲贴图:解决一闪一闪的问题 //在BeginBatchDraw(); 和 EndBatchDraw();写代码 //键盘事件消息demo2中有举例 getchar(); closegraph(); return 0; }
精灵图(drawImg报错)后面修改
#define _CRT_SECURE_NO_WARNINGS 1 #include<graphics.h> #include<stdio.h> #include<conio.h> #include<mmsystem.h> //包含多媒体接口,一定放在graphics.h下面 #pragma comment(lib,"winmm.lib") //预处理指令接口连接库 #include<easyx.h> //这个是只包含最新的API(函数接口) #include<graphics.h> //这个头文件包含了上面的,还包含了已经不推荐使用的函数 #include<stdio.h> //getchar的头文件 #include<time.h> int main() { initgraph(500, 500,SHOWCONSOLE); setbkcolor(WHITE); cleardevice(); //精灵动画:一排有很多照片实现动画 IMAGE img_sheet; loadimage(&img_sheet,"./images/wugui.jpg"); const int frameDelay=1000/60; int frameStart=0; int frameTime=0; int imgsize=32; //每帧的尺寸 int frames=7; //精灵的个数 int speed=200; //速度毫秒 int index=0; //下标:贴那一张图片 while (true) { frameStart=clock(); BeginBatchDraw(); cleardevice(); drawImg(250,250,imgsize,imgsize,&img_sheet,index * imgsize,0); EndBatchDraw(); index=(clock()/speed)%frames; frameTime = clock() - frameStart; if (frameDelay-frameTime>0) //16 -10 = 6 >0 { Sleep(frameDelay-frameTime); } getchar(); closegraph(); return 0; }
#define _CRT_SECURE_NO_WARNINGS 1 #include<graphics.h> #include<stdio.h> #include<conio.h> #include<mmsystem.h> //包含多媒体接口,一定放在graphics.h下面 #pragma comment(lib,"winmm.lib") //预处理指令接口连接库 void BGM() { //读取音乐:文件为.mp3为后缀才可播放,要把音乐拷贝到项目所在文件夹里 //打开音乐 //0,0,0为默认输出控制台 mciSendString("open ./images/ha.wav alias bgm", 0, 0, 0); //mciSendString("open ./images/ha.wav", 0, 0, 0); //播放音乐 重复播放repeat mciSendString("play bgm repeat", 0, 0, 0); //mciSendString("play ./images/ha.wav", 0, 0, 0); //设置音量大小 0~1000 mciSendString("setaudio bgm volume to 10",NULL,0,NULL); //专门用来播放音效 表示路径是文件名 异步 PlaySound("./images/ha.wav",NULL,SND_FILENAME|SND_ASYNC); if (0) { mciSendString("test./images/ha.wav",0, 0, 0); } } int main() { initgraph(500, 500,SHOWCONSOLE); setbkcolor(WHITE); cleardevice(); BGM();//调用 getchar(); closegraph(); return 0; }
文章浏览阅读406次。三种安装方式: 1. 从网上安装 sudo apt-get install mysql-server。装完已经自动配置好环境变量,可以直接使用mysql的命令。 注:建议将/etc/apt/source.list中的cn改成us,美国的服务器比中国的快很多。 2. 安装离线包,以mysql-5.0.45-linux-i686-icc-glibc23.tar.gz为例。 _ubuntuan安装mysql
实现输入地点或地点关键字,查询经纬度,从而完成标记点的定义。首先查询Convex数据库,提供10个最匹配的候选项若没有找到对应候选项,用户可以点击搜索按钮,会调用高德API进行查询。如果仍然没有查询到,可以点击“经纬度”按钮,进行经纬度的自行填写。已经添加了的标记点,支持编辑和删除。使用Zustand,进行地点增、删、改等状态管理。}));},// 移除location== id)}));
文章浏览阅读5.2k次。FineReport——获取控件值和单元格值_contentpane.getcellvalue
这是实现UV胶固化的核心设备。UV固化设备可能有不同的形式和规格,如手持式UV灯、台式UV固化机或流水线式的UV固化设备等,选择哪种设备主要取决于生产规模、操作要求和预算。请注意,选择和使用这些设备时,应遵循制造商的操作指南和安全建议,以确保操作的安全性和有效性。此外,对于大规模或高要求的生产应用,可能需要更高级的自动化设备和系统来实现高效、精确的。:由于UV胶和UV固化设备可能涉及一些安全风险,如紫外线辐射和化学品的潜在危害,因此需要佩戴适当的防护设备,如防护眼镜、手套和防护服等。胶以实现对聚酰亚胺(
综上所述,"无媒体,不活动"反映了媒体在现代社会中的重要作用,无论是在商业、教育还是日常生活中,媒体都扮演着关键角色。这句话提醒我们,要充分利用媒体的力量,同时也要注意媒体使用的方式和效果,确保其正面影响。“无媒体,不活动”通常指的是在现代社会中,媒体对于各种活动,尤其是公共活动和事件的推广、宣传和影响力是至关重要的。它强调了媒体在塑造公众意识、传播信息、影响公众观点和行为方面的作用。搭建媒体传播纽带,共建多方价值平台,专注中小初创,免费定制传播方案。传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。
DevOps是Development和Operations两个词的缩写,引用百度百科的定义:DevOps是一种方法或理念,它涵盖开发、测试、运维的整个过程。DevOps是提高软件开发、测试、运维、运营等各部门的沟通与协作质量的方法和过程,DevOps强调软件开发人员与软件测试、软件运维、质量保障(QA)部门之间有效的沟通与协作,强调通过自动化的方法去管理软件变更、软件集成,使软件从构建到测试、发布更加快捷、可靠,最终按时交付软件。传统的软件开发流程如下:1、项目经理分配模块给开发人员。
文章浏览阅读5.7k次,点赞4次,收藏15次。Zynq-7000能干什么1 背景知识因为Zynq-7000 PS(Processing System)端嵌入了Cortex-A9 ARM 处理核以及PL(Programmable Logic)端为基于Kintex-7或者Artix-7的FPGA架构使得Xilinx Zynq-7000更加强悍,应用领域更加广泛。下面将从以下方面介绍Zynq-7000的应用领域:汽车、通信系统、机器人、控制..._zynq平台优点
文章浏览阅读5k次,点赞2次,收藏6次。先直接贴代码吧。package mainimport ( "math/rand" "time")var letters = []byte("abcdefghjkmnpqrstuvwxyz123456789")var longLetters = []byte("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW...
文章浏览阅读1.6k次,点赞43次,收藏33次。本文提到的西北大学是位于密歇根湖泊畔的西北大学。西北大学(英语:Northwestern University,简称:NU)是美国的一所著名私立研究型大学。
文章浏览阅读1.4k次。起因vscode 升级了 prettier 3.0+之后,eslint 与 prettier 配合使用的配置总是冲突,保存自动格式化时人都快搞没了!!版本 :vscode v1.41.1 、vscode-prettier v3.18.0、 vscode-eslint v2.0.11我的方案按推荐删除原来的 prettier 设置,然后迁移到在 package.json 中// package.js..._prettier - javascript formatter
文章浏览阅读573次,点赞23次,收藏13次。我坚信,坚持学习,每天进步一点,滴水穿石,我们离成功都很近!以下是总结出来的字节经典面试题目,包含:计算机网络,Kotlin,数据结构与算法,Framework源码,微信小程序,NDK音视频开发,计算机网络等。字节高级Android经典面试题和答案。
文章浏览阅读778次。Git版本控制( Revision control)是一种在并发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。实现跨区域多人协同开发 追踪和记载一个或者多个文件的历史记录 组织和保护你的源代码和文档 统计工作量 并行开发、提高开发效率跟踪记录整个软件的开发过程 减轻开发人员的负担,节省时间,同时降低人为错误版本控制的分类1、本地版本控制 (以RCS为代表)记录文件每次的更新,可以对每个版本做一个快照,或是记录.._ruo-yi-git