VS Code进行C++程序调试时出现命令窗口一闪而过的问题,不加system(pause)或getchar()等语句的话,要怎么解决 40C

VS Code进行C++程序调试时出现命令窗口一闪而过的问题,不加system(pause)或getchar()等语句的话,要怎么解决

4个回答

在这个目录下有 test.exe 么,如果没有,那就是你编译器和编译命令没有配置好。

VS C++可以按Ctrl +F5来运行Release模式,这样运行后会暂停。VS Code可以试试, 应该也一样。
如果要Debug模式暂停,除了加暂停代码没什么好方法.

创建Event exitEt ;
在程序退出处 WaitForSingleObject(exitEt , INFINITE) ;

  1. 有界面的情况下可以在界面上加一个按钮 , 用按钮事件来SetEvent(exitEt); 退出 .
  2. 没有界面就在你自己要运行内容完成后 SetEvent(exitEt);

最简单的方法,在程序运行的最后打个断点就解决了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
VS Code进行C++程序调试时出现命令窗口一闪而过的问题,不加system(pause)或getchar()等语句的话,要怎么解决
VS Code进行C++程序调试时出现命令窗口一闪而过的问题,不加system(pause)或getchar()等语句的话,要怎么解决
VS Code调试程序时无法启动程序
![图片说明](https://img-ask.csdn.net/upload/201908/04/1564921024_826486.jpg) VS Code调试python程序时出现这样的问题,求解~
VS code 调试C语言代码
我用VS code 学习C语言,想打印出 Hello World,可是调试之后出现了一个.exe 文件,那个黑色窗口也没有显示出来. 打开.exe文件后出现乱码, 有没有大佬帮我看一下? 这是hello.exe出现乱码 ![图片说明](https://img-ask.csdn.net/upload/201911/16/1573876971_862432.png) 这是launch.json 文件代码 ``` { // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "gcc.exe build and debug active file", "type": "cppdbg", "request": "launch", "program": "${fileDirname}\\${fileBasenameNoExtension}.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "miDebuggerPath": "D:\\MinGW\\bin\\gdb.exe", "setupCommands": [ { "description": "为 gdb 启用整齐打印", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "gcc.exe build active file" } ] } ``` 这是tasks.json文件代码 ``` { // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { "type": "shell", "label": "gcc.exe build active file", "command": "D:\\MinGW\\bin\\gcc.exe", "args": [ "-g", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe" ], "options": { "cwd": "D:\\MinGW\\bin" }, "problemMatcher": [ "$gcc" ], "group": "build" } ] } ``` 我的电脑已经装好了C/C++插件和 run code插件, 以及相应的MinGW, 但是运行的时候那个黑窗窗出不来, 运行后又出现了.exe 文件, 却是乱码.
vs code JHIPSTER出错
jhipster : 无法将“jhipster”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。 所在位置 行:1 字符: 1 + jhipster import-jdl ./jdl/work.jh + ~~~~~~~~ + CategoryInfo : ObjectNotFound: (jhipster:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException ```
vs code调试不了,代码出现问题没有显示出来,就连调试控制台也没有显示输出的信息
![图片说明](https://img-ask.csdn.net/upload/201908/26/1566808116_893450.png) 求助,求助,求助各位大神,我的vs code调试不了,我调试的是php代码,但是调试不了,什么都没显示出来,就连调试控制台也没有显示输出的信息;哪里出现错误也不知道,各位大神走过的帮我看看哈,谢谢!
为什么 ubuntu 使用 who 命令无法查询使用 vs code 远程登入的用户
一般 ubuntu 使用 who 命令可以查询当前在线的用户。 最近尝试了一下使用 Visual Studio Code 去远程 SSH 连接 ubuntu 服务器, 发现使用 who 命令的无法查看这个使用VScode远程登入的用户。 请教一下这是为什么?有什么方法可以查看这个用户是否在线吗?
在VC++6.0上编译运行没问题,在LintCode上编译出了问题,是哪里有问题?
``` //功能:输入两个整数,计算并输出它们的和 //语言:C++ #include<iostream> using namespace std; int main() { int a,b,sum; cin >> a >> b; //输入这两个数 sum = a + b; cout << sum << endl; //输出和 return 0; } ``` 上面的代码在Visual C++6.0上运行没有任何问题,但在LintCode上面会出现如下错误警告,但我看不懂。 ``` /code/Main.cpp: In function 'int main(int, char**)': /code/Main.cpp:29:32: error: conflicting declaration of C function 'int main(int, char**)' int main(int argc, char *argv[]) { ^ In file included from /code/Main.cpp:27:0: /code/Solution.cpp:5:5: note: previous declaration 'int main()' int main() ^ /code/Main.cpp:58:9: error: 'Solution' was not declared in this scope Solution solution; ^ /code/Main.cpp:60:15: error: 'solution' was not declared in this scope ans = solution.aplusb(a, b); ^ ``` 哪里有问题呢?
修改程序:信源编解码(c语言)
修改程序:问题1。源文件source文本空间太长汉字太多无法运行2,未按频度要求排序 问题描述: 信源编解码是通信系统的重要组成部分。本实验旨在通过程序设计实现基于哈夫曼编码的信源编解码算法。程序具备以下功能: 对于给定的源文档 SourceDoc.txt, 1) 统计其中所有字符的频度(某字符的频度等于其出现的总次数除以总字符数) , 包括字母(区分大小写) 、标点符号及格式控制符(空格、回车等) 。 2) 按频度统计结果生成哈夫曼编码码表。 3) 基于哈夫曼码表进行编码,生成对应的二进制码流,并输出到文件 Encode.dat。 4) 对二进制码流进行哈夫曼解码,把结果输出到文件 DecodeDoc.txt。 5) 判断DecodeDoc.txt与SourceDoc.txt内容是否一致,以 验证编解码系统的正确性。 要求: 1) 用 C 语言实现。 2) 用子函数实现各功能模块。 3) 输出文件 Statistic.txt,包含的信息有:按频度大小排序的字符表,及各字符出现 的次数、频度及哈夫曼编码。 4) 应至少包含链表、二叉树的数据结构。 5) 不能用冒泡排序算法。 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<sys/stat.h> #include<sys/types.h> #include<fcntl.h> #include<unistd.h> #include<errno.h> #define N 10000 int count = 0; //每增加一个新的字符, count增加1, 可表示a中的字符种类数, 也即哈夫曼树叶子点个数 /*定义哈夫曼树结构体*/ typedef struct HuffmanTree{ int weight; int parent; int Lchild; int Rchild; }HuffmanTree[2*N]; /*定义储存字符及其出现次数的结构体*/ typedef struct DifferentCharacter{ char char_date; int num; //相同字符出现的次数 char a_code[100]; //每种字符对应的编码 }difcha[N]; /*在一定范围内选择两个weight最小的结点, 并将两个结点的序号赋给s1, s2*/ void select_two(HuffmanTree ht, int j, int *s1, int *s2) { int i = 1, temp; int min1 = 0, min2 = 0; while( (ht[i].parent != 0) && (i <= j) ) i++; *s1 = i; min1 = ht[i++].weight; while( (ht[i].parent != 0) && (i <= j) ) i++; *s2 = i; min2 = ht[i++].weight; if(min1 > min2){ temp = min1; min1 = min2; min2 = temp; } for(; i <= j; i++){ //遍历parent不为0的结点 if(ht[i].parent != 0) continue; if(ht[i].weight <= min1){ min2 = min1; min1 = ht[i].weight; *s2 = *s1; *s1 = i; } else if( (ht[i].weight < min2) && (ht[i].weight > min1) ) { min2 = ht[i].weight; *s2 = i; } } } /*建哈夫曼树*/ void EstHuffmanTree(HuffmanTree ht, int *w, int n){ int i; int s1 = 0, s2 = 0; for(i = 1; i <= n; i++){ //初始化哈夫曼树, 前n个单元存放叶子点 ht[i].weight = w[i]; ht[i].parent = 0; ht[i].Lchild = 0; ht[i].Rchild = 0; } for(i = n+1; i <= 2*n-1; i++){ //后n-1个单元存放非叶子点 ht[i].weight = 0; ht[i].parent = 0; ht[i].Lchild = 0; ht[i].Rchild = 0; } for(i = n+1; i <= 2*n-1; i++){ select_two(ht, i-1, &s1, &s2); //创建非叶子点, 建立哈夫曼树, 每次在ht[1]~ht[i-1]范围内选两个最小的weight结点,并将其序号赋给s1, s2 ht[i].weight = ht[s1].weight + ht[s2].weight; ht[i].Lchild = s1; ht[i].Rchild = s2; ht[s1].parent = i; ht[s2].parent = i; } //哈夫曼树建立完毕 } /*求哈弗曼编码*/ void CrtHuffmanCode(HuffmanTree ht, char **hcd, int n){ int start = 0, c = 0, p = 0, i; char *cd = (char*)malloc(n*sizeof(char)); //分配求当前编码的工作空间 cd[n-1] = '\0'; //从左向右存放编码 for(i = 1; i <= n; i++) { start = n-1; //初始化编码起始指针 c = i; p = ht[i].parent; while(p != 0){ start--; if(ht[p].Lchild == c) cd[start] = '0'; //左分支标0 else cd[start] = '1'; //右分支标1 c = p; //向上倒推 p = ht[c].parent; } hcd[i] = (char*)malloc((n-start)*sizeof(char)); strcpy(hcd[i], &cd[start]); } free(cd); } /*自定义错误处理函数*/ void my_err(char *err_string, int line){ printf("Line %d:\n", line); perror(err_string); exit(1); } /*从 buf_read 中统计每个字符出现的次数,将次数作为该字符的权值*/ void Statistics(difcha a, char *buf_read){ int i, j = 0; for(i = 0; i < strlen(buf_read) ; i++){ //对buf_read中的字符遍历 for(j = 0; j < count; j++){ //检查是否是新的字符 if(a[j].char_date == buf_read[i]){ a[j].num++; //若是旧字符, 则num++; break; } } if(j == count){ //若是新字符, 则记录到a中, 且对应的num++ a[count].char_date = buf_read[i]; a[count].num++; count++; //更新count } } } /*从 SourceDoc.txt 读取数据到 buf_read */ void ReadFile(char *pathName, char *buf_read){ int fd_date; int len = 0; if( (fd_date = open(pathName, O_RDWR)) < 0) //以读写方式打开SourceDoc.txt文件 my_err("open SourceDoc.txt", __LINE__); if(lseek(fd_date, 0, SEEK_END) < 0) //获取文件长度,并保持文件读写指针在文件开始处 my_err("lseek", __LINE__); if( (len = lseek(fd_date, 0, SEEK_CUR)) < 0 ) my_err("lseek", __LINE__); if(lseek(fd_date, 0, SEEK_SET) < 0) my_err("lseek", __LINE__); if(read(fd_date, buf_read, len) > len) //从SourceDoc.txt中读取内容 my_err("read SourceDoc.txt", __LINE__); } /*将 buf_code 写入 Encode.dat 中*/ void WriteFile(char *pathName, char *buf_code){ int fd_code; if((fd_code = open(pathName, O_CREAT|O_TRUNC|O_RDWR, S_IRWXU)) < 0) //创建Encode.dat文件 my_err("open Encode.dat", __LINE__); if( write(fd_code, buf_code, strlen(buf_code)) != strlen(buf_code) ) //将 buf_code 写入Encode.dat my_err("write Encode.dat", __LINE__); } /*主函数*/ void main(){ char buf_read[N] = {'\0'}; char buf_code[N] = {'\0'}; char buf_yima[N] = {'\0'}; char *hcd[N]; char temp[50] = {'\0'}; difcha a; int i, j, n, k = 0, m = 0; int w[N] = {0}; HuffmanTree ht; ReadFile("SourceDoc.txt", buf_read); Statistics(a, buf_read); for(i = 0; i < count; i++) w[i+1] = a[i].num; EstHuffmanTree(ht, w, count); //建HuffmanTree CrtHuffmanCode(ht, hcd, count); //对树中字符进行编码 for(i = 1; i <= count; i++) //将每个字符对应的编码存入结构体 a 中 strcpy(a[i-1].a_code, hcd[i]); FILE *fp1; fp1=fopen("Statistic.txt","w"); for(i = 0; i < count; i++) //查看每个字符的权值和对应的编码 fprintf(fp1,"%c %d %s\n", a[i].char_date, a[i].num, a[i].a_code); fclose(fp1); for(i = 0; i < strlen(buf_read) ; i++){ //遍历 buf_read, 给 SourceDoc.txt 中每个字符匹配编码, 存入 buf_code 中 for(j = 0; j < count; j++){ if(buf_read[i] == a[j].char_date){ strcat(buf_code, a[j].a_code); break; } } if(j == count) //匹配异常 printf("Unknown Character: %c\n", buf_read[i]); } WriteFile("Encode.dat", buf_code); //将 buf_code 写入 Encode.dat 中 ReadFile("Encode.dat", buf_read); //从 Encode.dat 中读取全部编码 n = strlen(buf_read); for(i = 0; i < n; i++){ //为 Encode.dat 中的编码匹配字符 temp[k++] = buf_read[i]; for(j = 0; j < count; j++){ if(strcmp(temp, a[j].a_code) == 0){ buf_yima[m++] = a[j].char_date; break; } } if(j < count){ //匹配成功, 对 temp 初始化 for(;k > 0; k--) temp[k] = '\0'; } } FILE *fp2; fp2=fopen("DecodeDoc.txt","w"); fprintf(fp2,"%s", buf_yima); fclose(fp2); }
code blocks如何退出调试功能?-?
code blocks如何退出调试功能?-? 打开了之后不知道怎么整了哈哈
Visual Studio Code使用Touch WX框架创建微信小程序问题
我按Touch WX开发文档一步一步,还是错了 ![图片说明](https://img-ask.csdn.net/upload/201912/29/1577625633_574455.png) ![图片说明](https://img-ask.csdn.net/upload/201912/29/1577625717_608737.png) ![图片说明](https://img-ask.csdn.net/upload/201912/29/1577625783_857024.png) 在这步错了,能告诉我哪里错了吗?十分感谢。
winform程序的Application.Run()抛出异常:“未将对象引用设置到对象的实例“?
##winform程序的Application.Run()抛出异常:“未将对象引用设置到对象的实例“ ![图片说明](https://img-ask.csdn.net/upload/201912/05/1575519266_161353.png) ###下面是调试时感觉出问题的地方: ``` //触发事件 private void MC_Code_SelectedIndexChanged(object sender, EventArgs e) { label8.Text = MC_Code.Text; if (MC_Code.Text == null) return; mc_code = MC_Code.Text; Dept_Code = dept_code.Text; try { Thread thr = new Thread(loadDataGridView); thr.Start(); } catch { } } string mc_code = ""; string Dept_Code = ""; ***#感觉出问题的函数#*** void loadDataGridView() { DataTable table = new DataTable(); //BindingSource bs = new BindingSource(); while (true) { table = getData(mc_code, Dept_Code, Login.Site); if (table == null) return; //BindingSource bs = new BindingSource(); //bs.DataSource = table; //bs.DataMember = "Data"; try { //第一次在下拉列表中选择一个值代码运行到此处,不会出现任何问题;但是当在下拉列表中重新选择值第二次运行到此处时,就会跳转到Application.Run()这个地方抛出异常:“未将对象引用设置到对象的实例“ #this.dataGridView1.DataSource = table;# //this.dataGridView1.DataBindings.Add("Text",bs,""); } catch { return; } Thread.Sleep(60000); } } **不知道具体是什么问题,求大神解决!** ```
小白求助!!!关于利用Zbar进行二维码扫描程序的问题
构建openCV3.4.0+zbar 64位+VS2015的环境 (zbar貌似只支持32位系统因此我又自己找了64位的库) 这个程序就是利用调用摄像头扫描二维码,然后通过数学计算测量摄像头与二维码的实时距离 是按照原博主的这篇文章https://zhou-yuxin.github.io/articles/2017/%E5%9F%BA%E4%BA%8E%E4%BA%8C%E7%BB%B4%E7%A0%81%E7%9A%84%E5%AE%A4%E5%86%85%E5%AE%9A%E4%BD%8D%E6%8A%80%E6%9C%AF%EF%BC%88%E4%BA%8C%EF%BC%89%E2%80%94%E2%80%94%E5%AE%9E%E7%8E%B0/index.html参考的 又请了师兄将其中openCV老版本的语句换成了我这个版本的 本来应该按照原博的示例是这样的 ![图片说明](https://img-ask.csdn.net/upload/201912/11/1576057370_636530.jpg) 但是我运行过后变成了这样 ![图片说明](https://img-ask.csdn.net/upload/201912/11/1576057402_728485.png) 打印出来的三个变量不对 而且都是乱码 我上网搜索也没有发现相关资料和问题 真的很着急 求各位大神指教 是不是我的ZBAR安装的有问题? 真的快急哭了 求救!!! 代码如下 QRLocation.h #ifndef QRLOCATION_H #define QRLOCATION_H /* 二维码的内容必须符合格式: QRLocation,<qrSize> 其中<qrSize>是一个实数,表示二维码边长 */ #include <opencv2/opencv.hpp> #include <opencv2/videoio.hpp> #include <zbar.h> #include <opencv/highgui.h> //二维码倾斜阈值 #define QRLOCATION_INCLINATION_THRESHOLD 0.1 //调试窗口标题 #define QRLOCATION_DEBUGUI_TITLE "debugui" //二维码位姿 typedef struct QRPose { //二维码中心所在铅垂线与O点构成的平面和Z轴形成的夹角 double a; //二维码所在平面与X轴构成的夹角 double b; //二维码中心到XOY平面的距离 double z; } QRPose_t; //二维码定位算法 class QRLocation { public: //初始化,第一个参数为摄像头编号,第二个参数为摄像头上下视角,第三个参数为是否开启调试窗口 bool init(int webcamIndex, double hViewAngle, bool debugUI); //获取二维码位姿 bool getQRPose(QRPose_t* qrPose); //销毁 bool destroy(); private: //摄像头 cv::VideoCapture capture; //摄像头上下视角 double hViewAngle; //是否开启调试窗口 bool debugUI; //灰度图 cv::Mat grayFrame; //图片扫描器 zbar::ImageScanner scanner; private: //计算位姿(格式合法性判断) bool getQRPose(zbar::Image::SymbolIterator symbol, QRPose_t* qrPose); //计算位姿(算法) bool getQRPose(zbar::Image::SymbolIterator symbol, double qrSize, QRPose_t* qrPose); }; #endif QRLocation.cpp #include <iostream> #include <opencv/highgui.h> #include "QRLocation.h" #include <string.h> #include <stdio.h> using namespace std; using namespace zbar; bool QRLocation::init(int webcamIndex, double hViewAngle, bool debugUI) { //打开摄像头 capture.open(webcamIndex); //摄像头不存在 if (!capture.isOpened()) { printf("camera open error \n"); return false; } //printf("point 2 \n"); this->hViewAngle = hViewAngle; this->debugUI = debugUI; //grayFrame=0; //配置zbar图片扫描器 scanner.set_config(zbar::ZBAR_NONE, zbar::ZBAR_CFG_ENABLE, 1); //printf("point 3 \n"); //如果开启调试,则创建窗口,名称为“debugui”,自动调整大小 if (debugUI) { cv::namedWindow(QRLOCATION_DEBUGUI_TITLE, CV_WINDOW_AUTOSIZE); } //printf("point 4 \n"); return 1; } bool QRLocation::getQRPose(QRPose_t* qrPose) { //从摄像头中抓取一帧 cv::Mat frame; capture.read(frame);; //图像为空 if (frame.empty()) { printf("read frame is empty!\n"); return false; } //printf("point 6 \n"); //如果灰度图没有创建,就创建一个和原图一样大小的灰度图(8位色深,单通道) //if (grayFrame.empty()) { grayFrame = cv::Mat(frame.size(), IPL_DEPTH_8U, 1); //} //原图转灰度图 //cv::cvtColor(frame, grayFrame, cv::COLOR_BGR2GRAY); cvtColor(frame, grayFrame, CV_RGB2GRAY); //printf("point 9 \n"); //如果开启调试,则显示灰度图 if (debugUI) { cv::imshow(QRLOCATION_DEBUGUI_TITLE, grayFrame); char c = cv::waitKey(30); } //printf("point 8 \n"); //创建zbar图像 uchar* data = frame.data; void *new_data = static_cast<void *>(data); Image image(frame.size().width, frame.size().height, "Y800", new_data, frame.size().width*frame.size().height); //printf("point 7 \n"); //扫描图像,识别二维码,获取个数 int symbolCount = scanner.scan(image); //获取第一个二维码 Image::SymbolIterator symbol = image.symbol_begin(); //遍历所有识别出来的二维码 while (symbolCount--) { //能够识别 if (getQRPose(symbol, qrPose)) return true; //下一个二维码 ++symbol; } return false; } bool QRLocation::getQRPose(Image::SymbolIterator symbol, QRPose_t* qrPose) { //首先得是一个二维码 if (symbol->get_type_name() != "QR-Code") printf("this is shit"); //获取内容 char data[128]; strncpy_s(data, symbol->get_data().c_str(), sizeof(data) - 1); data[sizeof(data) - 1] = 0; //内容得是以“QRLocation,”开头 if (strncmp(data, "QRLocation,", 11) != 0) return false; //获取二维码边长 double qrSize = 0; sscanf_s(data + 11, "%lf", &qrSize); if (qrSize == 0) return false; //计算位姿 return getQRPose(symbol, qrSize, qrPose); } bool QRLocation::getQRPose(Image::SymbolIterator symbol, double qrSize, QRPose_t* qrPose) { //获得四个点的坐标 double x0 = symbol->get_location_x(0); double y0 = symbol->get_location_y(0); double x1 = symbol->get_location_x(1); double y1 = symbol->get_location_y(1); double x2 = symbol->get_location_x(2); double y2 = symbol->get_location_y(2); double x3 = symbol->get_location_x(3); double y3 = symbol->get_location_y(3); //左边沿纵向差 double leftH = y1 - y0; //右边沿纵向差 double rightH = y2 - y3; //必须保证0点高于1点,3点高于2点 if (leftH<0 || rightH<0) return false; //左边沿横向差 double leftW = abs(x0 - x1); //右边沿横向差 double rightW = abs(x2 - x3); //不能太倾斜 if (max(leftW / leftH, rightW / rightH)>QRLOCATION_INCLINATION_THRESHOLD) return false; //上下视角一半的正切值,因为一直要用,所以先计算出来 double tanHalfView = tan(hViewAngle / 2); double leftLen = sqrt(leftH*leftH + leftW*leftW); double rightLen = sqrt(rightH*rightH + rightW*rightW); //左边沿的深度 double leftZ = grayFrame.size().height*qrSize / tanHalfView / 2 / leftLen; //右边沿的深度 double rightZ = grayFrame.size().height*qrSize / tanHalfView / 2 / rightLen; //得到中心点的深度 double z = (leftZ + rightZ) / 2; //计算b的正弦值 double sinB = (leftZ - rightZ) / qrSize; if (sinB>1) return false; //得到b double b = asin(sinB); //两条对角线的系数和偏移 double k1 = (y2 - y0) / (x2 - x0); double b1 = (x2*y0 - x0*y2) / (x2 - x0); double k2 = (y3 - y1) / (x3 - x1); double b2 = (x3*y1 - x1*y3) / (x3 - x1); //两条对角线交点的X坐标 double crossX = -(b1 - b2) / (k1 - k2); //计算a的正切值 double tanA = tanHalfView*(2 * crossX - grayFrame.size().width) / grayFrame.size().width; //得到a double a = atan(tanA); qrPose->a = a; qrPose->b = b; qrPose->z = z; return true; } //bool QRLocation::destroy() //{ //释放灰度图 //cvReleaseImage(&grayFrame); //销毁窗口 //cvDestroyWindow(QRLOCATION_DEBUGUI_TITLE); //释放内存 //cvReleaseCapture(&capture); //} QRLocationTest.cpp #include "QRLocation.h" #include <stdio.h> int main(int argc, char* argv[]) { //printf("point 1 \n"); QRLocation qrLoc; if (!qrLoc.init(0, 0.60, true)) { return 1; } //printf("point 5 \n"); QRPose_t pose; while (true) { if (qrLoc.getQRPose(&pose)) { double aInDegree = pose.a * 180 / 3.1415; double bInDegree = pose.b * 180 / 3.1415; printf("a=%.2lf,b=%.2lf,z=%.2lf\n", aInDegree, bInDegree, pose.z); } } }
Bacon's Cipher 密码问题
Problem Description Bacon's cipher or the Baconian cipher is a method of steganography (a method of hiding a secret message as opposed to a true cipher) devised by Francis Bacon. A message is concealed in the presentation of text, rather than its content. As we all know, each letter has its position in the alphabet, ‘A’ is 0, ‘B’ is 1, ‘C’ is 2…and so on. And each number can be represented in binary code, for example, 2 is ‘10’ in binary system. Then we expand the binary code to five digits by adding leading zeros, then 10 becomes 00010. Now we can use this number to encode. To simplify the question, we define the rules as below: 0 corresponds to a random uppercase letter and 1 corresponds to a random number, so after encoding, 00010 ( ‘C’ ) is transformed to ABC1D or JUG9N. To decode, do the opposite way around. Input The first line contains a positive number l, represents the length of the encoded string. L<=10000 and can be divided by 5. The second line is the encoded string. Output The original string. Sample Input 35 ON1E2H5Q39AK2TGIC9ERT39B2P423L8B20D Sample Output FLEENOW
Serial Numbers 关于序列号的问题
Problem Description A manufacturer keeps an ordered table of serial numbers by listing in each row of the table a range of serial numbers along with two corresponding pieces of information called the status code and the transfer code. A four-column table stores information about ranges of serial numbers in this order: starting serial number, ending serial number, status code, transfer code. Serial numbers as well as transfer codes are integers from 1 to 2147483647, and status codes are a single upper-case letter. The table is maintained in increasing order of serial numbers, serial number ranges are never allowed to overlap, and for any given serial number, the table must always accurately represent the most recent data (status code and transfer code) for that serial number. Let's say that 100,000 serial numbers are created with a status of "A" and a transfer code of "1". An entry for those serial numbers might look like this: 1 100000 A 1 This is obviously far more efficient than storing 100,000 individual rows all with the same status and transfer codes. The challenge arises when serial numbers within already defined ranges need to be given different status or transfer codes. For example, if serial number 12345 needs to change to status B, the above table would need to become three separate entries: 1 12344 A 1 12345 12345 B 1 12346 100000 A 1 Now let's change the transfer code of all serial numbers in the range 12000 to 12999 to 2. This gets us: 1 11999 A 1 12000 12344 A 2 12345 12345 B 2 12346 12999 A 2 13000 100000 A 1 Now change all existing serial numbers from 10000 to 100000 to status C and transfer code 2: 1 9999 A 1 10000 100000 C 2 Once created a serial number will never be deleted, but it is possible to have ranges of undefined serial numbers between ranges of defined ones. To demonstrate, let's now set all serial numbers from 1000000 to 1999999 to status Z and transfer code 99: 1 9999 A 1 10000 100000 C 2 1000000 1999999 Z 99 Finally, the table is always maintained with a minimal number of rows, meaning specifically that there will never be two adjacent rows in the table where one would suffice. For example, consider the following serial number table: 1 10 A 1 11 20 A 1 21 30 B 1 The first two rows could actually be represented by a single row, meaning that the table above does not have a minimal number of rows. The same data represented by a minimal number of rows would look like this: 1 20 A 1 21 30 B 1 The following table, however, because the first two rows have non-matching transfer codes, already contains the minimal number of rows: 1 10 A 1 11 20 A 2 21 30 B 1 Similarly, the following table cannot be reduced further because the first two rows do not represent a continuous series of serial numbers: 1 10 A 1 12 20 A 1 21 30 B 1 Input Each input case begins with a single line that is a character string naming the test case. This string contains at most 80 characters. The name "END" marks the end of the input. Following this will be 1 to 100 lines of the form "A B S T", where A, B, and T are integers in the range 1 to 231-1, S is an uppercase letter, and A<=B. These lines are, in the order they are to be applied, the serial number transactions to be recorded, where A is the start of the serial number range, B is the end of the serial number range, S is the status code, and T is the transfer code. The list of serial number transactions is terminated by a line containing only a 0 (zero) character. Output For each input case, echo the test case name to the output on a line by itself, followed by the resulting minimal-rows serial number table that results after all serial number transactions have been applied. Sample Input First Example 1 100000 A 1 12345 12345 B 1 0 And Another 1 100000 A 1 12345 12345 B 1 12000 12999 A 2 12345 12345 B 2 0 Test Case Three 1 100000 A 1 12345 12345 B 1 12000 12999 A 2 12345 12345 B 2 10000 100000 C 2 0 Example Four 1 100000 A 1 12345 12345 B 1 12000 12999 A 2 12345 12345 B 2 10000 100000 C 2 1000000 1999999 Z 99 0 Example 5 1 10 A 1 21 30 B 1 11 20 A 1 0 Example 6 21 30 B 1 1 10 A 1 11 20 A 2 0 Example 7 12 20 A 1 21 30 B 1 1 10 A 1 0 END Sample Output First Example 1 12344 A 1 12345 12345 B 1 12346 100000 A 1 And Another 1 11999 A 1 12000 12344 A 2 12345 12345 B 2 12346 12999 A 2 13000 100000 A 1 Test Case Three 1 9999 A 1 10000 100000 C 2 Example Four 1 9999 A 1 10000 100000 C 2 1000000 1999999 Z 99 Example 5 1 20 A 1 21 30 B 1 Example 6 1 10 A 1 11 20 A 2 21 30 B 1 Example 7 1 10 A 1 12 20 A 1 21 30 B 1
VS code配置c语言环境
用VS code编写c语言,装上了MinGW,也配置了环境,但在VS code中一直出错,网上看了许多也尝试了许多办法还是没解决,有没有大佬能帮我解决一下。 ![图片说明](https://img-ask.csdn.net/upload/201909/01/1567346872_420509.png)![图片说明](https://img-ask.csdn.net/upload/201909/01/1567346884_346422.png)![图片说明](https://img-ask.csdn.net/upload/201909/01/1567346888_200469.png)![图片说明](https://img-ask.csdn.net/upload/201909/01/1567346896_190503.png)
ecplise调试时在Expression窗口中添加对赋值语句的监视时,程序中变量值发生异常变化
在熟悉和测试Ecplise调试的方法的过程中,发现如果对程序中赋值语句进行监视“watch”,变量值的变化会很奇怪。 比如 [code= java]public static void main(String[] args) {         int a = 1;         for (init i = 0; i < 10; i++) {                 a = a + 1;         }         System.out.println(a); }[/code] 我在对“a = a + 1;”进行监视的时候发现调试程序在正常的逐句执行之外还会在每次正常执行后都调用一次"a = a + 1"。 这个原因是什么呀?找了好多关于调试的文章好像都没说到expression窗口中是怎么工作的文章。
VS code中选中一个变量,会突出显示相同的变量,但是有些变量和选中变量部分相同的也会被选中,这应该怎么配置?
![图片说明](https://img-ask.csdn.net/upload/201912/31/1577724777_583824.png) 我选中的时hquery,但是end_hquery中的hquery也被选中了,这个有点让人烦恼,这要怎么配置呢? 求解!
vue项目build后请求404
我前端使用vue,后端使用java开发的前后端分离的小项目。 前端完事以后用npm run dev都能正常运行。 但是使用npm run build打包后放在tomcat上访问却出问题了。 界面可以打开,资源也加载了。但是在向后端发送请求时,却报错了。我用的axios请求。 情况如下: <br> Failed to load resource: the server responded with a status of 404 () Error: Request failed with status code 404 at FtD3.e.exports (vendor.b3fd7698053a850e233d.js:43) at e.exports (vendor.b3fd7698053a850e233d.js:13) at XMLHttpRequest.f.onreadystatechange (vendor.b3fd7698053a850e233d.js:19) 我搜索了一下没有什么收获。问题的关键在于后端没问题,dev时请求没问题,就是build时请求404。 求好心人指点。 <br> <hr> <br> ![图片说明](https://img-ask.csdn.net/upload/202001/13/1578882449_857485.png) 今天我再调试,发现错误有了一点变化,主要是多了一个post请求地址,但是实际上这个地址是错误的。正确的应该是139.196.125.89:8080/lis_war/login。
Springboot项目部署问题
本地测试没有问题,但是部署上服务器后,出现部分地址能访问,但是某些JSP页面找不着 ERROR ErrorPageFilter:225 - Cannot forward to error page for request [/qrCode/statement] as the response has already been committed. As a result, the response may have the wrong status code. If your application is running on WebSphere Application Server you may be able to resolve this problem by setting com.ibm.ws.webcontainer.invokeFlushAfterService to false 本地测试一点问题没有,Jenkins,部署完成后,访问时出现这个问题,但是也有些网也能访问 是URL的问题,还是什么原因呢个,请大神指导1
python 爬虫遇到问题了,这个问题怎么办
我们老师让写一个爬虫,爬东方财富每个股票的历史流动资金,我写出来后,运行程序,前面没什么问题,到后面就有问题了 代码如下:import requests import pandas import json import pymssql import re #获取股票资金流量网页的数据 def GetHtml(url): html=requests.get(url) html=html.text return html #对数据进行拆分 def CleanData(html): Str_data=html[len('jQuery1830006374794149931473_1577602052640')+1:-2] #对数据进行切割 Str_data2=json.loads(Str_data)['data'] #对无用数据进行再切分获取代码和名称 print(Str_data2['code']) code = Str_data2['code'] #股票编码 name = Str_data2['name'] #股票名称 data=[] for i in range (len(Str_data2['klines'])): data.append(Str_data2['klines'][i]) dealData(data,name,code) data.clear() Str_data2.clear() #对拆分数据进行整理 def dealData(datalist,name,code): #对列表中元素进行切片 new_datalist = ''.join(datalist) new_datalist=new_datalist.split(',') Name=name Code=code #将新列表放入数据库中 insertDatabase(new_datalist,Name,Code) new_datalist.clear() #将数据导入数据库中 def insertDatabase(datalist,Name,Code): #对新列表数据进行分类 date=datalist[0] #时间 close_price=datalist[11] #收盘价 Quote_change=datalist[12] #涨跌幅 Main_net=datalist[1] #主力净额 Main_foce=datalist[6] #主力净占比 Over_net=datalist[5] #超大单净额 Over_foce=datalist[10] #超大单净占比 Big_net=datalist[4] #大单净额 Big_foce=datalist[9] #大单净占比 Mid_net=datalist[3] #中单净额 Mid_foce=datalist[8] #中单净占比 Sm_net=datalist[2] #小单净额 Sm_foce=datalist[7] #小单净占比 data=(Name,Code,date,close_price,Quote_change,Main_net,Main_foce,Over_net,Over_foce,Big_net,Big_foce,Mid_net,Mid_foce,Sm_net,Sm_foce) sql="insert into Moneymove values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);" #建立连接 conn = pymssql.connect(host="localhost:1433", user="sa", password="123456", database="test", charset="UTF-8") cursor = conn.cursor() #插入测试数据 cursor.execute(sql , data) conn.commit() del data conn.close() #创建数据库 def Createdatabase(): conn = pymssql.connect(host="localhost:1433", user="sa", password="123456", database="test", charset="UTF-8") cursor = conn.cursor() cursor.execute(""" create table Moneymove( 股票代码 varchar(100), 股票名称 varchar(100), 时间 varchar(100) , 收盘价 varchar(100), 涨跌幅 varchar(100), 主流净额 varchar(100), 主流净占比 varchar(100), 超大单净额 varchar(100), 超大单净占比 varchar(100), 大单净额 varchar(100), 大单净占比 varchar(100), 中单净额 varchar(100), 中单净占比 varchar(100), 小单净额 varchar(100), 小单净占比 varchar(100) ) """) conn.commit() conn.close() # def NeedData(): # 建立连接并获取cursor conn = pymssql.connect(host="localhost:1433", user="sa", password="123456", database="test", charset="UTF-8") cursor = conn.cursor() # 如果连接时没有设置autocommit为True的话,必须主动调用commit() 来保存更改。 conn.commit() # 查询记录 cursor.execute('SELECT 股票代码 From SwClass$ ') # 获取一条记录 row = cursor.fetchone() code_list=[] # 循环打印记录(这里只有一条,所以只打印出一条) for i in range (3769): if row[0] != None: if str(row[0][0]) =='6': code='1.'+row[0] code_list.append(code) else: code = '0.'+row[0] code_list.append(code) row = cursor.fetchone() return code_list # 连接用完后记得关闭以释放资源 conn.close() def main(): Createdatabase() code_list=NeedData() print(code_list) for i in code_list: url='http://push2his.eastmoney.com/api/qt/stock/fflow/daykline/get?lmt=0&klt=101&secid='+ str(i)+'&fields1=f1,f2,f3,f7&fields2=f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61,f62,f63,f64,f65&ut=b2884a393a59ad64002292a3e90d46a5&cb=jQuery1830006374794149931473_1577602052640&_=1577602052949' html=GetHtml(url) CleanData(html) main() 出现的问题是这个: Traceback (most recent call last): File "C:/Users/VULCAN/Desktop/爬虫实习/3.py", line 135, in <module> main() File "C:/Users/VULCAN/Desktop/爬虫实习/3.py", line 134, in main CleanData(html) File "C:/Users/VULCAN/Desktop/爬虫实习/3.py", line 25, in CleanData dealData(data,name,code) File "C:/Users/VULCAN/Desktop/爬虫实习/3.py", line 39, in dealData insertDatabase(new_datalist,Name,Code) File "C:/Users/VULCAN/Desktop/爬虫实习/3.py", line 65, in insertDatabase conn = pymssql.connect(host="localhost:1433", user="sa", password="123456", database="test", charset="UTF-8") File "src\pymssql.pyx", line 636, in pymssql.connect File "src\_mssql.pyx", line 1957, in _mssql.connect File "src\_mssql.pyx", line 675, in _mssql.MSSQLConnection.__init__ ValueError: list.remove(x): x not in list 请问各位大佬,这要如何解决?
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
前端 | 2. 正则
转载请注明以下: 本文转自清自以敬的博客:https://blog.csdn.net/qq_45791147 文章目录1.转义2.正则表达式初步2.1.匹配字符2.1.1.组成元素2.1.2.基础正则的设计 1.转义 转义的作用: 当某个字符在表达式中具有特殊含义,例如字符串引号中出现了引号,为了可以使用这些字符本身,而不是使用其在表达式中的特殊含义,则需要通过转义符“\”来构建该字符转义...
有哪些让程序员受益终生的建议
从业五年多,辗转两个大厂,出过书,创过业,从技术小白成长为基层管理,联合几个业内大牛回答下这个问题,希望能帮到大家,记得帮我点赞哦。 敲黑板!!!读了这篇文章,你将知道如何才能进大厂,如何实现财务自由,如何在工作中游刃有余,这篇文章很长,但绝对是精品,记得帮我点赞哦!!!! 一腔肺腑之言,能看进去多少,就看你自己了!!! 目录: 在校生篇: 为什么要尽量进大厂? 如何选择语言及方...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
Docker 从入门到掉坑
Docker 介绍 简单的对docker进行介绍,可以把它理解为一个应用程序执行的容器。但是docker本身和虚拟机还是有较为明显的出入的。我大致归纳了一下,可以总结为以下几点: docker自身也有着很多的优点,关于它的优点,可以总结为以下几项: 安装docker 从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Doc...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
白话阿里巴巴Java开发手册高级篇
不久前,阿里巴巴发布了《阿里巴巴Java开发手册》,总结了阿里巴巴内部实际项目开发过程中开发人员应该遵守的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过在时间中总结模式,并推广给广大开发人员,来避免研发人员在实践中容易犯的错误,确保最终在大规模协作的项目中达成既定目标。 无独有偶,笔者去年在公司里负责升级和制定研发流程、设计模板、设计标准、代码标准等规范,并在实际工作中进行...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
Python 编程开发 实用经验和技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法和技巧,包括小数保留指定位小数、判断变量的数据类型、类方法@classmethod、制表符中文对齐、遍历字典、datetime.timedelta的使用等,会持续更新......
YouTube排名第一的励志英文演讲《Dream(梦想)》
Idon’t know what that dream is that you have, I don't care how disappointing it might have been as you've been working toward that dream,but that dream that you’re holding in your mind, that it’s po...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
相关热词 c# 二进制截断字符串 c#实现窗体设计器 c#检测是否为微信 c# plc s1200 c#里氏转换原则 c# 主界面 c# do loop c#存为组套 模板 c# 停掉协程 c# rgb 读取图片
立即提问