QT二进制文件读取问题 3C

一个二进制文件正常读出来的数据应该是这样的图片说明
但是我用流都出来的都是这样的
1 0 65535 65535 0 65535 0 65536 0 65536 0 0 0 0
0 nan 0 -1 0 0 0 -65536 1 0 0 0 0 -65536
0 nan 0 -65536 265006 393220 19464192 4849664 0 0 131072 -65404928 65535 131071
0 2.122e-314 0 0 0 0 1 0 0 0 0 65536 0 0
0 2.122e-314 0 -1 65536 0 -65536 0 0 65535 0 65536 0 1
65536 5.56277e-309 6 297 74 0 0 3 -996 -65536 0 65535 0 65535
4294901760 0 65536 0 0 0 65535 0 0 0 -65535 0 65535 131071
求大神指点这样的二进制二进制文件怎么读?
01 00 00 00 18 fc ff ff 00 00 00 00 00 00 00 00 ff ff 00 00 ff ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 ff ff 00 00 ff ff 00 00 00 00 ff ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 01 00 00 00 00 00 01 00 ff ff ff ff 00 00 00 00 00 00 ff ff 2e 0b 04 00 04 00 06 00 00 00 29 01 00 00 4a 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 1a fc ff ff 00 00 ff ff 01 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 01 00 00 00 00 00 00 00 ff ff ff ff 00 00 01 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 ff ff ff ff 2e 0b 04 00 04 00 06 00 00 00 29 01 00 00 4a 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 1c fc ff ff 00 00 ff ff 00 00 00 00 ff ff 00 00 00 00 00 00 ff ff 00 00 00 00 ff ff 01 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 ff ff 00 00 00 00 ff ff 00 00 ff ff 01 00 00 00 ff ff ff ff ff ff 01 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 ff ff 00 00 00 00 00 00 00 00 01 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ff ff 00 00 2e 0b 03 00 04 00 07 00 00 00 29 01 00 00 4a 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 1e fc ff ff 00 00 00 00 ff ff ff ff 00 00 00 00 00 00 00 00 ff ff 01 00 00 00 ff ff 01 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 ff ff 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 01 00 00 00 00 00 ff ff 00 00 00 00 ff ff 00 00 ff ff 01 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 ff ff 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff 2e 0b 04 00 05 00 06 00 00 00 29 01 00 00 4a 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 20 fc ff ff 00 00 ff ff 00 00 00 00 ff ff ff ff ff ff 01 00 00 00 01 00 00 00 ff ff 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 ff ff 00 00 00 00 00 00 01 00 ff ff 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 01 00 00 00 00 00 ff ff 00 00 00 00 00 00 ff ff 01 00 ff ff 01 00 fe ff 00 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 ff ff 00 00 ff ff ff ff 2e 0b 04 00 04 00 06 00 00 00 29 01 00 00 4a 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 22 fc ff ff 00 00 ff ff ff ff 01 00 ff ff 00 00 ff ff 00 00 00 00 00 00 00 00 ff ff 01 00 01 00 00 00 01 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 ff ff 00 00 01 00 01 00 00 00 00 00 00 00 01 00 01 00 00 00 00 00 00 00 00 00 ff ff 01 00 ff ff 00 00 00 00 ff ff ff ff ff ff ff ff 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ff ff 01 00 00 00 01 00 00 00 00 00 00 00 00 00 ff ff 01 00 00 00 00 00 00 00 2d 0b 04 00 04 00 06 00 00 00 29 01 00 00 4a 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 24 fc ff ff 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 ff ff 00 00 01 00 ff ff 01 00 00 00 01 00 01 00 01 00 00 00 00 00 01 00 01 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 01 00 01 00 00 00 00 00 01 00 ff ff 00 00 00 00 01 00 00 00 ff ff 00 00 ff ff 00 00 ff ff 00 00 00 00 00 00 01 00 ff ff ff ff 00 00 01 00 00 00 00 00 01 00 ff ff 00 00 ff ff 01 00 01 00 00 00 00 00 ff ff 00 00 01 00 01 00 ff ff 00 00 2e 0b 05 00 05 00 06 00 00 00 29 01 00 00 4a 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 26 fc ff ff 00 00 ff ff 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 01 00 00 00 ff ff 00 00 00 00 00 00 01 00 00 00 00 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 00 00 01 00 ff ff 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 ff ff ff ff 00 00 00 00 01 00 00 00 00 00 00 00 00 00 ff ff 01 00 ff ff 00 00 01 00 00 00 ff ff 01 00 00 00 ff ff 00 00 2d 0b 04 00 04 00 06 00 00 00 29 01 00 00 4a 00 00 00 00 00 00 00 00 00 00 00 09 00 00 00 28 fc ff ff 00 00 ff ff 00 00 00 00 fe ff ff ff 00 00 00 00 00 00 00 00 ff ff ff ff 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 01 00 00 00 ff ff ff ff 00 00 00 00 ff ff 00 00 ff ff 01 00 00 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 ff ff 00 00 01 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 2e 0b 04 00 04 00 06 00 00 00 29 01 00 00 4a 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 2a fc ff ff 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 01 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 01 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ff ff 01 00 ff ff 00 00 01 00 00 00 00 00 ff ff 00 00 ff ff 01 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 ff ff 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 2e 0b 03 00 04 00 06 00 00 00 29 01 00 00 4a 00 00 00 00 00 00 00 00 00 00 00 0b 00 00 00 2c fc ff ff 01 00 00 00 00 00 00 00 ff ff 00 00 ff ff 00 00 00 00 00 00 00 00 ff ff 00 00 01 00 00 00 01 00 00 00 00 00 01 00 01 00 01 00 00 00 00 00 01 00 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ff ff ff ff 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 2d 0b 04 00 04 00 06 00 00 00 29 01 00 00 4a 00 00 00 00 00 00 00 00 00 00 00 0c 00 00 00 2e fc ff ff 00 00

1个回答

贴出你的原始16进制的文件内容、预期的结果和你的程序才好进一步帮你。简单来说,你的流里面读取的数据类型和你的文件格式不匹配。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
二进制文件转十进制读取

![图片说明](https://img-ask.csdn.net/upload/201612/19/1482157833_839024.png)QT中这样的二进制文件转换为十进制怎样读取,求教

qt二进制、十六进制数据转化为float

我在tcpsever接收数据,是二进制数据流,我用qbytearray接收,toHex转成十六进制存到qString了,之后其中的短整形用toUshort正常转换,但是浮点数使用toFloat就不行了,大神们谁有好方法,将十六进制qString转换成float或者还是用二进制的qbytearray直接转化为float?求教!!! QByteArray a=socket->readAll(); QString b=a.left(1).toHex();//这是一个字节的整形 QString c=a.right(4).toHex();//这是四字节的浮点 bool ok; usigned short day=b.toUShort(&ok,16); float slope=c.toFloat(&ok); 输出时,day是正常整数,slope就是乱码了。

纯数字二进制dat文件,读取的时候怎样换行

![图片说明](https://img-ask.csdn.net/upload/201612/20/1482225813_392108.png)

linux环境判断文件是否为二进制文件

请问在linux环境下,通过什么命令能判断文件是否为二进制文件?请知道的告诉下谢谢,不要复制粘贴网上的答案 我通过file + 文件名的方法,显示如下: [root@localhost test]# file /usr/bin/vim /usr/bin/vim: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x2e8e7e1158d07637a7782a6d515c829711d8ade2, stripped 有没有什么命令或者方法,能简单的告诉我是或者不是?请知道的告诉下

C++ 数据转换 如何将文本文件(.txt)转换成二进制文件(.dat)?

有什么方法可以把int 类型的数组转换成 unsigned char的数组? 因为我现在从文本文件读取(0-255)的数据,一行一个数据,读取到在int数组每个数据占用三个字节,我想只占用一个字节,然后保存二进制文件,请问怎么可以解决呢? 例如,文本文件数据是255,这样写入之后二进制文本之后 //ofstream fout("Binary.dat", ios_base::out | ios_base::binary); for (i = 0; i < LINES; i++) //输出二进制文本 { out.write((char*)&BINARY[i], sizeof(BINARY[i])); } 希望读取到的二进制数据还是255。题主在做随机数,需要用Binary,即每BYTE占用八个BITs Lines = CountLines(filename); cout << "文件行数:" << Lines << endl; // 读取文件行数 int *Bit = new int[Lines]; int i = 0; while (!file.eof()) { file >> Bit[i]; i++; } file.close(); //读取文本文件数据到数组,关闭文件 for (i = 0; i < Lines; i++) { cout << Bit[i]<<endl; } delete[]Bit; cin.get(); //输出数组内容到屏幕 目前,我只是把数据读到一个int数组(Bits)里面了。

C++二进制流读取远不够指定长度

FILE *fp; fp = fopen("C:\\Users\\Administrator\\Desktop\\工程\\rec\\str.bin","rb"); if(fp == NULL) return; len_file = _filelength(_fileno(fp)); len_pack = len_file/10; if((len_file-len_pack*FrameNum)!=0) FrameNo = FrameNum+1; unsigned char **FileBuffer = new unsigned char*[FrameNo]; //待压缩视频文件 for(i=0;i<FrameNo;i++) FileBuffer[i] = new unsigned char[len_pack]; fseek(fp,0,SEEK_SET); for(i=0;i<FrameNum;i++) // { fread(FileBuffer[i],sizeof(unsigned char),len_pack,fp); } if(FrameNo != FrameNum) { fread(FileBuffer[i],sizeof(unsigned char),len_file-i*len_pack,fp); } fclose(fp);

怎么读取二进制图片啊

现在在数据库里面存储了一个二进制图片文件,我要怎么读取到页面显示啊

SCIK Ranger3得到了3D图像数据以二进制格式保存到了计算机中,将二进制文件读取成文本文件的格式,读取后数据有问题

计算机从相机中得到了两个文件 1.包含图像数据的二进制文件 2.用于描述二进制文件的 XML 文件 ![图片说明](https://img-ask.csdn.net/upload/202003/08/1583651424_811484.png) 其中xml文件内容如下: ![图片说明](https://img-ask.csdn.net/upload/202003/08/1583651611_816750.png) 我将数据读出来,发现有些数据特别大,有些又特别小 ![图片说明](https://img-ask.csdn.net/upload/202003/08/1583654207_110922.png) ![图片说明](https://img-ask.csdn.net/upload/202003/08/1583654231_930386.png) 请问需要怎么改进 代码如下: ``` #include<iostream> #include <fstream> #include <string> #include<vector> using namespace std; void DataRead_CPPMode(string path); int main() { string path;//文件路径 path = "img-0.dat"; DataRead_CPPMode(path); system("pause"); return 0; } /* 读二进制文件 path: 文件路径 */ void DataRead_CPPMode(string path) { //每次读取3个 double pos_in[3]; ifstream infile(path, ios::binary); if (!infile) { cout << "读取文件失败" << endl; return; } //写出 ofstream outfile("dianyun.txt"); if (!outfile) { cerr << "open error!" << endl; exit(1); } while (!infile.eof()) { infile.read((char*)pos_in, 3 * sizeof(double)); for (int i = 0; i < 3; i++) { cout << pos_in[i] << "\t"; outfile << pos_in[i] << "\t"; } cout << endl; outfile << endl; } infile.close(); outfile.close(); } ```

求助一段C++以二进制读取stl模型文件的代码,并且把模型显示出来。

如题,代码请尽量简单,读取的效果如下图所示即可。 ![图片说明](https://img-ask.csdn.net/upload/201906/03/1559526009_869826.png) 另外,我用的软件目前只有VS2012,如果读取stl文件需要用到其他软件的话请告知。

关于qt读取xml文件并作为excel文件表头

新使用Qt,求大神指点:如何使用Qt读取xml文件,然后将其节点属性作为excel文件的表头输出呢?

python人脸识别无法打开摄像头

You might be loading two sets of Qt binaries into the same process. Check that all plugins are compiled against the right Qt binaries. Export DYLD_PRINT_LIBRARIES=1 and check that only one set of binaries are being loaded. qt.qpa.plugin: Could not load the Qt platform plugin "cocoa" in "" even though it was found. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. Available platform plugins are: cocoa, minimal, offscreen. 您可能要将两组Qt二进制文件加载到同一个进程中。检查所有的插件都是根据正确的Qt二进制编译的。导出DYLD_PRINT_LIBRARIES=1,并检查是否只加载了一组二进制文件。 qt.qpa。在“”中无法加载Qt平台的插件“cocoa”,即使它被找到了。 此应用程序启动失败,因为没有Qt平台插件可以初始化。重新安装应用程序可以修复这个问题。 可用的平台插件有:cocoa, minimum, offscreen。 ![图片说明](https://img-ask.csdn.net/upload/202004/10/1586508950_699401.jpg) 怎么解决?求助大神,急!!!

数值强制转换精度丢失问题

http://paste.ubuntu.com/26026112/ 在做HDUOJ时发现的,输入153 153 计算时5的立方值int类型转换之后值为124,求问为什么在这会发生精度丢失,而我单独写一个pow(5,3)却不会?

QT socket接收端每一次接收缓冲区数据的延时问题。

我想实现局域网视频传输功能,客户端通过调用摄像头将每一帧画面传送到服务器端,服务器端将获致的画面显示出来,客户端是在Linux系统上,服务器端是在Windows系统上。在客户端中我的QSocket类对象调用write()发送数据流,服务器端readyread()信号关联的槽函数中用readAll()来读取缓冲区中的数据流,但是在读取数据的时候,我发现每一次读取数据后会有几毫秒的延时才会继续读取后来的数据,并且缓冲区每次也只有3472个字节的数据可读取,我的每帧画面大概有300多K,所以正因为这种延时我在客户端发送每帧画面的频率不能过快,大概只能一秒一帧才会正常显示画面。这个问题困扰我很长时间了,我应该怎样处理这种问题??????? 补充,从windows上发送数据给Linux不会有上述问题,视频很流畅。

C++ 图片存入 sql server base64 ???

是以二进制写入的吗?? ?

QT调试代码出现提示信息错误

QT调试代码中出现 Internal error: pc 0xa0520000 in read in psymtab, but not in symtab. 请问下这是问题,怎么解决?对程序有影响吗? 下面是我的代码 #include "socketwidget.h" #include <QPushButton> #include <QTextEdit> #include <QLineEdit> #include <QLabel> #include <QDebug> #include <QHostAddress> #include <QByteArray> SocketWidget::SocketWidget(QWidget *parent) : QWidget(parent) { send_btn = new QPushButton(this); send_btn->setText("send"); send_btn->setGeometry(9,268,78,23); close_btn = new QPushButton(this); close_btn->setText("close"); close_btn->setGeometry(316,268,75,23); connect_btn = new QPushButton(this); connect_btn->setText("connect"); connect_btn->setGeometry(316,20,75,23); connect(send_btn,&QPushButton::clicked,this,&SocketWidget::on_buttonSend_clicked); connect(close_btn,&QPushButton::clicked,this,&SocketWidget::on_buttonClose_clicked); connect(connect_btn,&QPushButton::clicked,this,&SocketWidget::on_buttonConnect_clicked); send_btn->setEnabled(false); close_btn->setEnabled(false); label1 = new QLabel(this); label1->setText("服务器IP:"); label1->setGeometry(9,9,72,20); label2 = new QLabel(this); label2->setText("服务器端口:"); label2->setGeometry(9,35,72,20); lineEditIP = new QLineEdit(this); lineEditIP->setText("127.0.0.1"); lineEditIP->setGeometry(87,9,223,20); lineEditPort = new QLineEdit(this); lineEditPort->setText("8888"); lineEditPort->setGeometry(87,35,223,20); textEditRead = new QTextEdit(this); textEditRead->setReadOnly(true); textEditRead->setGeometry(9,61,382,97); textEditWrite = new QTextEdit(this); textEditWrite->setGeometry(9,164,382,98); tcpSocket =NULL; //分配空间制定父对象 tcpSocket = new QTcpSocket(this); setWindowTitle("客户端"); connect(tcpSocket,&QTcpSocket::connected, [=]() { textEditRead->setText("成功和服务器连接"); send_btn->setEnabled(true); close_btn->setEnabled(true); connect_btn->setEnabled(false); } ); connect(tcpSocket,&QTcpSocket::readyRead,this,&SocketWidget::onSocketReadyRead); connect(tcpSocket, QOverload<QAbstractSocket::SocketError>::of(&QAbstractSocket::error), this, &SocketWidget::displayError); } SocketWidget::~SocketWidget() { } void SocketWidget::onSocketReadyRead() { if(tcpSocket->bytesAvailable() <= 0) { return; } qint64 totalBytes = 0; m_buffer = NULL; //从缓存区去除数据,但是不确定取出来的字节数; QByteArray buffer= tcpSocket->readAll(); m_buffer.append(buffer); unsigned int totalLen = m_buffer.size(); textEditRead->append(buffer); //这边确实需要利用长度做while循环,因为有可能一下子读取到两条以上的完整记录,就需要进行循环处理了; //超过一条完整小于第二条完整记录时,如果已经达到包头长度就先把包头保存下来,整个过程循环往复 while (totalLen) { //与QDataStream绑定,方便操作 QDataStream packet(m_buffer); packet.setVersion(QDataStream::Qt_5_10); //不够包头长度的不处理,结束while循环 unsigned int MINSIZE = sizeof(qint64)*2; if(totalLen < MINSIZE) { //textEditRead->append(buffer); break; } //将包头读入了进来按照定义的协议,先读命令长度,再读命令的类型; packet >> totalBytes >>serverCmd; //缓存中的内容长度没有达到命令的长度,那就先结束,等足够了再来解析 if(totalLen<totalBytes) break; //足够长了就开始解析 // QDir dir(sysFilePath); //系统文件目录 // if(!dir.exists()) // dir.mkdir(sysFilePath); switch (serverCmd) { case QString_recv: { qDebug()<<"开始接收字符串..."; QByteArray datas = m_buffer.mid(MINSIZE,totalBytes-MINSIZE); QString strInfo;//数据包中的message strInfo.prepend(datas); qDebug() <<strInfo;//输出接收到的QString } break; default: //qint64 nbytes = tcpSocket->bytesAvailable(); //textEditRead->append(buffer); break; } //缓存多余的数据 buffer = m_buffer.right(totalLen - totalBytes); //截取下一个数据包的数据,留作下次读取 totalLen = buffer.size(); //更新多余的数据 m_buffer = buffer; } /* while (tcpSocket->bytesAvailable() > 0) { qint64 nbytes = tcpSocket->bytesAvailable(); QByteArray array = tcpSocket->read(nbytes); textEditRead->append(array); }*/ } void SocketWidget::on_buttonConnect_clicked() { QHostAddress localIP = QHostAddress("127.0.0.1"); //获取服务器ip和端口 QString ip = lineEditIP->text(); qint16 port = lineEditPort->text().toInt(); //tcpSocket->abort(); if(tcpSocket->bind(localIP,42055) ) { qDebug() << "1 localHost:" << localIP.toString(); qDebug() << "2 localPort:" << tcpSocket->localPort(); } tcpSocket->abort(); //主动和服务器建立连接 tcpSocket->connectToHost(ip, port); if(tcpSocket->waitForConnected(1000) ) { send_btn->setEnabled(true); close_btn->setEnabled(true); connect_btn->setEnabled(false); } else { QMessageBox::information(this, tr(" Client"), tr("连接失败,请检查后重试")); } } void SocketWidget::on_buttonSend_clicked() { //获取编辑框内容 QString str = textEditWrite->toPlainText(); //发送数据 tcpSocket->write(str.toUtf8().data() ); if(tcpSocket->waitForBytesWritten(1000) ) { textEditWrite->clear(); } else { QMessageBox::information(this, tr(" Client"), tr("内容为空,输入后从新发送")); } } void SocketWidget::displayError(QAbstractSocket::SocketError socketError) { switch (socketError) { case QAbstractSocket::RemoteHostClosedError: connect_btn->setEnabled(true); send_btn->setEnabled(false); close_btn->setEnabled(false); QMessageBox::information(this, tr(" Client"), tr("The host was disconnect. Please check and " "request again.")); textEditRead->append("服务器已断开连接"); break; case QAbstractSocket::HostNotFoundError: QMessageBox::information(this, tr(" Client"), tr("The host was not found. Please check the " "host name and port settings.")); break; case QAbstractSocket::ConnectionRefusedError: QMessageBox::information(this, tr(" Client"), tr("The connection was refused by the peer. " "Make sure the server is running, " "and check that the host name and port " "settings are correct.")); break; default: QMessageBox::information(this, tr(" Client"), tr("The following error occurred: %1.") .arg(tcpSocket->errorString())); } } void SocketWidget::on_buttonClose_clicked() { //主动和对方断开连接 tcpSocket->disconnectFromHost(); if(tcpSocket->state() == QAbstractSocket::UnconnectedState || tcpSocket->waitForDisconnected(1000) ) { tcpSocket->close(); connect_btn->setEnabled(true); send_btn->setEnabled(false); close_btn->setEnabled(false); textEditRead->append("已断开连接"); } else { QMessageBox::information(this, tr(" Client"), tr("断开连接失败,请检查后重试")); } }

服务器socket接收并显示16进制的数据

发送指令A1 58 01 02 05 01 01 02 02 01 03 86 客户端会恢复消息,用网络调试助手显示是A1 58 01 02 05 01 01 02 02 01 00 03 请问应该怎么写?

MYSQ数据库插入BLOB字段

MYSQ数据库怎么插入BLOB字段?用C++怎么实现?请各位大神指教。

entity framework6.0插入数据时内容有如m³等特殊符号,跟踪发现在数据库接收到时变成了m3,求大神指点

![添加界面](https://img-ask.csdn.net/upload/201811/02/1541118900_424856.jpg) ![VS调试跟踪](https://img-ask.csdn.net/upload/201811/02/1541119001_58064.jpg) ![sql server profiler跟踪](https://img-ask.csdn.net/upload/201811/02/1541119029_248781.jpg)

代码没有错误,为什么程序没运行完就直接结束了?

![图片说明](https://img-ask.csdn.net/upload/201908/08/1565246195_162168.png) ![图片说明](https://img-ask.csdn.net/upload/201908/08/1565246218_224284.png) ``` //主要功能:实现带小数二进制和十进制之间数据的转换 #include <iostream.h> #include <windows.h> #include <fstream.h> #include <string> #include <math.h> using namespace std; const int TAILMAXLENTH=10;//定义十进制转换成二进制小数部分最大位数 const int DABAMAXLENTH=40;//定义原始数据的最大长度 const double ADDMENBERNUM=111.11;//定义一个加数用于检测数据真实可用 /********************************************************************************************************* *栈的部分 *********************************************************************************************************/ class Stack;//类Stack的声明 /* 定义一个链栈结点类Stacknode */ class Stacknode { friend class Stack;//申请友元类 private: Stacknode(Stacknode *nextp=NULL);//构造函数 Stacknode(int &newdata,Stacknode *nextp=NULL);//构造函数 int data;//数据元素 Stacknode *next;//递归定义指向后继结点的指针 }; /* Stacknode的实现部分 */ Stacknode::Stacknode(Stacknode *nextp)//构造函数 { next=nextp; } Stacknode::Stacknode(int &newdata,Stacknode *nextp)//构造函数 { data=newdata; next=nextp; } //结点类Stacknode的定义结束 /* 定义一个链栈类Stack */ class Stack { public: Stack();//创建一个空栈 ~Stack();//回收一个栈 void clear();//销毁一个栈 bool empty() const;//确定栈是否已空 bool push(int &item);//把数据压进栈 bool pop();//出栈 bool top(int &item) const;//取出栈顶元素 private: Stacknode *newnode(Stacknode *nextp=NULL); Stacknode *newnode(int &item,Stacknode *nextp=NULL);//创建新的结点 Stacknode *Stacktop; int Stacklength; }; /* Stack的实现部分 */ Stacknode *Stack::newnode(Stacknode *nextp)//创建新的结点,不带数据 { return new Stacknode(nextp); } Stacknode *Stack::newnode(int &item,Stacknode *nextp)//创建新的结点,数据域赋值 { return new Stacknode(item,nextp); } //以下为栈类Stack的函数定义 Stack::Stack()//创建一个空栈 { Stacktop=newnode();//创建一个栈顶指针初始化,相当于Stacktop=NULL;本链表没有用头结点 Stacklength=0; } Stack::~Stack()//回收一个栈 { clear(); delete Stacktop;//释放栈底 } void Stack::clear()//销毁一个栈 { //while(pop());//不停地出栈,而每次释放空间在出栈函数中完成 Stacknode *usednodep;//定义指针usednodep,准备指向出栈的结点 while(Stacktop->next!=NULL) { usednodep=Stacktop;//指向出栈的结点 Stacktop=Stacktop->next;//栈顶指针后移 delete usednodep;//释放空间 } } bool Stack::empty() const//确定栈是否已空 { return Stacklength<=0?true:false; } bool Stack::push(int &item)//数据进栈 { Stacknode *newnodep;//定义指针newnodep,准备指向申请的新结点 newnodep=newnode(item,Stacktop);//申请新结点,把数据存入,把指针域指向头指针 if(!newnodep)//如果没有申请到空间,返回失败 return false; Stacktop=newnodep;//改链,完成进栈 Stacklength++;//栈的长度增加 return true;//本次操作成功 } bool Stack::pop()//出栈,不要栈顶数据 { Stacknode *usednodep;//定义指针usednodep,准备指向出栈的结点 if(!empty())//判断是否栈空 { usednodep=Stacktop;//指向出栈的结点 Stacktop=Stacktop->next;//栈顶指针后移 // delete usednodep;//释放空间 Stacklength--;//栈的长度减少 return true;//本次操作成功 } return false;//否则本次操作失败 } bool Stack::top(int &item) const//取出栈顶数据返回去 { if(!empty())//如果栈不空,记录当前栈顶元素 { item=Stacktop->data;//通过item返回去 return true;//本次操作成功 } return false;//否则本次操作失败 } /********************************************************************************************************* *队列的部分 *********************************************************************************************************/ /* 定义一个结点类node */ class node { public: int data; node *next; }; /* 定义一个链队类Queue */ class Queue { private: node *rear; node *front; protected: int count;//计数器,统计结点个数即线性队列的长度 public: Queue();//构造函数 ~Queue();//析构函数 void clear(void);//清空链队 bool empty(void) const;//判断是否空队 bool retrieve(int &item) const;//读取队头 bool append(const int &item);//数据入队 bool serve();//数据出队 }; /* 类Queue的实现部分 */ Queue::Queue()//构造函数 { front=new node;//申请新结点,作为队头结点 front->next=NULL; rear=front;//队尾指针指向队头 count=0;//计数器清零,队列开始时没有实际数据 } Queue::~Queue()//析构函数 { clear();//删除所有数据,释放所有结点 delete front;//把头结点也释放掉 count=0;//计数器清零,队列开始时没有实际数据 } void Queue::clear(void)//清空链队 { node *searchp=front->next,*followp=front;//初始化两个指针 while(searchp!=rear) { followp=searchp; searchp=searchp->next; delete followp; } front->next=NULL;//保留了最后一个结点,就是头结点,并且链域置为空 rear=front; count=0;//计数器也清零 } bool Queue::empty(void) const//判断是否空链 { return count==0?true:false; } bool Queue::retrieve(int &item) const//读取队头 { if(empty())//处理意外 return false; item=front->next->data;//返回读取的数据 return true;//本次操作成功 } bool Queue::append(const int &item)//进队 { node *newnodep=new node; newnodep->data=item;//给数据赋值 rear->next=newnodep;//这一步可以看出有头结点 rear=rear->next;//改动队尾指针的位置 count++;//计数器加1 return true; } bool Queue::serve()//出队 { if(empty())//空队处理 return false; node *tempp=front->next; // item=tempp->data;//保存数据 front->next=tempp->next;//改变指针 delete tempp;//释放该结点 count--;//计数器减1 return true; } /********************************************************************************************************* *定义一个功能类NumSysConversion *********************************************************************************************************/ class NumSysConversion { private: int inter; float floater; Stack *stack; Queue *queue; public: NumSysConversion();//构造函数 ~NumSysConversion();//析构函数 bool check(char *array,int number);//检查输入数据是否符合要求 void change(char *array,int number);//将原始数据转化成数值 double change_to_aim(int tokind);//将原始数据转化成目标进制的数据 }; NumSysConversion::NumSysConversion()//构造函数 { stack=new Stack; queue=new Queue; inter=0; floater=0; } NumSysConversion::~NumSysConversion()//析构函数 { delete stack; delete queue; } bool NumSysConversion::check(char *array,int number)//检查输入数据是否符合要求 { bool flag=true; for(int i=0;array[i]!='\0';i++) { cout<<array[i]; if(array[i]-48>=number) { flag=false; break; } } return flag; } void NumSysConversion::change(char *array,int number)//将原始数据转化成数值 { int flag=0,j=0; for(int i=0;array[i]!='\0';i++) { if(array[i]=='.') { flag=1; continue; } if(flag==0)//取整数数据 inter=inter*number+array[i]-48; if(flag==1)//取小数数据 floater+=(float)(((int)array[i]-48)*(float)pow(number,--j)); } } double NumSysConversion::change_to_aim(int tokind)//将原始数据转化成目标进制的数据 { int count=0,temp,flag=0,num; double resnumb=0; //第一步:先将整数部分转换进制后的数据依次入栈 while(inter) { num=inter%tokind; stack->push(num); inter/=tokind; } //第二步:再将小数部分转换进制后的数据依次入队 while(floater&&count<TAILMAXLENTH) { queue->append(int(floater*tokind)); floater*=tokind; if(floater>=1) floater-=(int)floater; count++; } //第三步:显示栈和队中的数据并将其转换成可用数据 cout<<"数据转换后为:"; while(!stack->empty()) { stack->top(temp); stack->pop(); cout<<temp; resnumb=resnumb*tokind+temp; flag=1; } if(!queue->empty()) { if(flag==0) cout<<"0"; cout<<"."; count=-1; } while(!queue->empty()) { queue->retrieve(temp); queue->serve(); cout<<temp; resnumb+=temp*pow(tokind,count--); } cout<<endl; //第四步:清空栈和队中的数据 stack->clear(); queue->clear(); inter=0; floater=0; //第五步:将可用数据信息返回 return resnumb; } /* 定义一个实现进制转换功能的菜单处理类interfacebase */ class interfacebase { private: NumSysConversion NumSysConversiononface; public: void clearscreen(void);//清屏 void showmenu(void);//显示菜单函数 int userchoice(void);//用户的选项 void processmenu(int menuchoice);//菜单函数 }; /* 类interfacebase的实现部分 */ void interfacebase::clearscreen(void) { system("cls"); } void interfacebase::showmenu(void) { cout<<"进制转换功能菜单"<<endl; cout<<"================"<<endl; cout<<"1.十进制转换为二进制"<<endl; cout<<"2.二进制转换为十进制"<<endl; cout<<"0.结束程序"<<endl; cout<<"================"<<endl; } int interfacebase::userchoice(void) { int menuchoice; cout<<"请输入您的选择:"; cin>>menuchoice; return menuchoice; } void interfacebase::processmenu(int menuchoice) { switch(menuchoice)//根据用户的选择进行相应的操作 { case 1: { char array[10]={'0','.','1','2','5'}; int number=10; if(NumSysConversiononface.check(array,number)) cout<<"符合要求!"<<endl; else cout<<"不符合要求!"<<endl; NumSysConversiononface.change(array,number); cout<<NumSysConversiononface.change_to_aim(2)<<endl; cout<<"进制转换成功!"<<endl; } break; case 2: { char array[10]={'1','1','1','1'}; int number=2; if(NumSysConversiononface.check(array,number)) cout<<"符合要求!"<<endl; else cout<<"不符合要求!"<<endl; NumSysConversiononface.change(array,number); cout<<NumSysConversiononface.change_to_aim(10)<<endl; cout<<"进制转换成功!"<<endl; } break; case 0: exit(0); default: cout<<"对不起,您输入的功能编号有错!请重新输入!!!"<<endl; break; } } /* 程序主入口 */ void main(void) { int menuchoice;//定义变量,菜单选单项的选择 interfacebase interfacenow; system("color f0");//修改屏幕的背景色和字的颜色 interfacenow.clearscreen();//清屏 while(1)//永真循环 { interfacenow.showmenu();//显示菜单 menuchoice=interfacenow.userchoice();//获取用户的选择 interfacenow.processmenu(menuchoice);//处理用户的选择 system("pause");//暂停 interfacenow.clearscreen();//清屏 } }//主函数结束 ```

Python可以这样学(第一季:Python内功修炼)

董付国系列教材《Python程序设计基础》、《Python程序设计(第2版)》、《Python可以这样学》配套视频,讲解Python 3.5.x和3.6.x语法、内置对象用法、选择与循环以及函数设计与使用、lambda表达式用法、字符串与正则表达式应用、面向对象编程、文本文件与二进制文件操作、目录操作与系统运维、异常处理结构。

获取Linux下Ftp目录树并逐步绑定到treeview

在linux下抓取目录树,双击后获取该节点子节点(逐步生成)。另外有两个类,一个是windows下的(一次性获取目录树),一个是linux下的(足部获取目录树)

NS网络模拟和协议仿真源代码

NS网络模拟和协议仿真源代码,包含代码说明及协议分析

简单的NS3网络模拟仿真(计算机网络作业)

简单的NS3网络模拟仿真,内附有PPT演示。论文评述。以及简单的安装教程。

手把手实现Java图书管理系统(附源码)

【超实用课程内容】 本课程演示的是一套基于Java的SSM框架实现的图书管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的java人群。详细介绍了图书管理系统的实现,包括:环境搭建、系统业务、技术实现、项目运行、功能演示、系统扩展等,以通俗易懂的方式,手把手的带你从零开始运行本套图书管理系统,该项目附带全部源码可作为毕设使用。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27513 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程2年有效观看时长,大家可以抓紧时间学习后一起讨论哦~ 【学员专享增值服务】 源码开放 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化

三个项目玩转深度学习(附1G源码)

从事大数据与人工智能开发与实践约十年,钱老师亲自见证了大数据行业的发展与人工智能的从冷到热。事实证明,计算机技术的发展,算力突破,海量数据,机器人技术等,开启了第四次工业革命的序章。深度学习图像分类一直是人工智能的经典任务,是智慧零售、安防、无人驾驶等机器视觉应用领域的核心技术之一,掌握图像分类技术是机器视觉学习的重中之重。针对现有线上学习的特点与实际需求,我们开发了人工智能案例实战系列课程。打造:以项目案例实践为驱动的课程学习方式,覆盖了智能零售,智慧交通等常见领域,通过基础学习、项目案例实践、社群答疑,三维立体的方式,打造最好的学习效果。

150讲轻松搞定Python网络爬虫

【为什么学爬虫?】 &nbsp; &nbsp; &nbsp; &nbsp;1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到! &nbsp; &nbsp; &nbsp; &nbsp;2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站 【课程设计】 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是: 网络请求:模拟浏览器的行为从网上抓取数据。 数据解析:将请求下来的数据进行过滤,提取我们想要的数据。 数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。 那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是: 爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。 Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。 通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。 &nbsp; 从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求! 【课程服务】 专属付费社群+每周三讨论会+1v1答疑

cuda开发cutilDLL

包括cutil32.dll、cutil32D.dll、cutil32.lib、cutil32D.lib,以及附带的glew32.lib/freeglut.lib

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

Tensorflow与python3.7适配版本

tensorflow与python3.7匹配的最新库,更新了python3.7以后可以自行下载,或者去国外python的扩展包下载界面自行下载。

4小时玩转微信小程序——基础入门与微信支付实战

这是一个门针对零基础学员学习微信小程序开发的视频教学课程。课程采用腾讯官方文档作为教程的唯一技术资料来源。杜绝网络上质量良莠不齐的资料给学员学习带来的障碍。 视频课程按照开发工具的下载、安装、使用、程序结构、视图层、逻辑层、微信小程序等几个部分组织课程,详细讲解整个小程序的开发过程

专为程序员设计的数学课

<p> 限时福利限时福利,<span>15000+程序员的选择!</span> </p> <p> 购课后添加学习助手(微信号:csdn590),按提示消息领取编程大礼包!并获取讲师答疑服务! </p> <p> <br> </p> <p> 套餐中一共包含5门程序员必学的数学课程(共47讲) </p> <p> 课程1:《零基础入门微积分》 </p> <p> 课程2:《数理统计与概率论》 </p> <p> 课程3:《代码学习线性代数》 </p> <p> 课程4:《数据处理的最优化》 </p> <p> 课程5:《马尔可夫随机过程》 </p> <p> <br> </p> <p> 哪些人适合学习这门课程? </p> <p> 1)大学生,平时只学习了数学理论,并未接触如何应用数学解决编程问题; </p> <p> 2)对算法、数据结构掌握程度薄弱的人,数学可以让你更好的理解算法、数据结构原理及应用; </p> <p> 3)看不懂大牛代码设计思想的人,因为所有的程序设计底层逻辑都是数学; </p> <p> 4)想学习新技术,如:人工智能、机器学习、深度学习等,这门课程是你的必修课程; </p> <p> 5)想修炼更好的编程内功,在遇到问题时可以灵活的应用数学思维解决问题。 </p> <p> <br> </p> <p> 在这门「专为程序员设计的数学课」系列课中,我们保证你能收获到这些:<br> <br> <span> </span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">①价值300元编程课程大礼包</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">②应用数学优化代码的实操方法</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">③数学理论在编程实战中的应用</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">④程序员必学的5大数学知识</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">⑤人工智能领域必修数学课</span> </p> <p> <br> 备注:此课程只讲程序员所需要的数学,即使你数学基础薄弱,也能听懂,只需要初中的数学知识就足矣。<br> <br> 如何听课? </p> <p> 1、登录CSDN学院 APP 在我的课程中进行学习; </p> <p> 2、登录CSDN学院官网。 </p> <p> <br> </p> <p> 购课后如何领取免费赠送的编程大礼包和加入答疑群? </p> <p> 购课后,添加助教微信:<span> csdn590</span>,按提示领取编程大礼包,或观看付费视频的第一节内容扫码进群答疑交流! </p> <p> <img src="https://img-bss.csdn.net/201912251155398753.jpg" alt=""> </p>

实现简单的文件系统

实验内容: 通过对具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。 要求: 1.在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个简

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

四分之一悬架模型simulink.7z

首先建立了四分之一车辆悬架系统的数学模型,应用MATLAB/Simulink软件建立该系统的仿真模型,并输入路面激励为随机激励,控制不同的悬架刚度和阻尼,选用最优的参数得到车辆悬架的振动加速度变化曲线

MFC一站式终极全套课程包

该套餐共包含从C小白到C++到MFC的全部课程,整套学下来绝对成为一名C++大牛!!!

C++语言基础视频教程

C++语言基础视频培训课程:本课与主讲者在大学开出的程序设计课程直接对接,准确把握知识点,注重教学视频与实践体系的结合,帮助初学者有效学习。本教程详细介绍C++语言中的封装、数据隐藏、继承、多态的实现等入门知识;主要包括类的声明、对象定义、构造函数和析构函数、运算符重载、继承和派生、多态性实现等。 课程需要有C语言程序设计的基础(可以利用本人开出的《C语言与程序设计》系列课学习)。学习者能够通过实践的方式,学会利用C++语言解决问题,具备进一步学习利用C++开发应用程序的基础。

Java8零基础入门视频教程

这门课程基于主流的java8平台,由浅入深的详细讲解了java SE的开发技术,可以使java方向的入门学员,快速扎实的掌握java开发技术!

HoloLens2开发入门教程

本课程为HoloLens2开发入门教程,讲解部署开发环境,安装VS2019,Unity版本,Windows SDK,创建Unity项目,讲解如何使用MRTK,编辑器模拟手势交互,打包VS工程并编译部署应用到HoloLens上等。

C/C++学习指南全套教程

C/C++学习的全套教程,从基本语法,基本原理,到界面开发、网络开发、Linux开发、安全算法,应用尽用。由毕业于清华大学的业内人士执课,为C/C++编程爱好者的教程。

pokemmo的资源

pokemmo必须的4个rom 分别为绿宝石 火红 心金 黑白 还有汉化补丁 资源不错哦 记得下载

test_head.py

本文件主要是针对使用dlib的imglab标注工具标记的目标检测框和关键点检测而生成的xml文件, 转换为coco数据集格式.

Java面试史上最全的JAVA专业术语面试100问 (前1-50)

前言: 说在前面, 面试题是根据一些朋友去面试提供的,再就是从网上整理了一些。 先更新50道,下一波吧后面的也更出来。 求赞求关注!! 废话也不多说,现在就来看看有哪些面试题 1、面向对象的特点有哪些? 抽象、继承、封装、多态。 2、接口和抽象类有什么联系和区别? 3、重载和重写有什么区别? 4、java有哪些基本数据类型? 5、数组有没有length()方法?String有没有length()方法? 数组没有length()方法,它有length属性。 String有length()方法。 集合求长度用

2019 AI开发者大会

2019 AI开发者大会(AI ProCon 2019)是由中国IT社区CSDN主办的AI技术与产业年度盛会。多年经验淬炼,如今蓄势待发:2019年9月6-7日,大会将有近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者齐聚北京,进行技术解读和产业论证。我们不空谈口号,只谈技术,诚挚邀请AI业内人士一起共铸人工智能新篇章!

linux“开发工具三剑客”速成攻略

工欲善其事,必先利其器。Vim+Git+Makefile是Linux环境下嵌入式开发常用的工具。本专题主要面向初次接触Linux的新手,熟练掌握工作中常用的工具,在以后的学习和工作中提高效率。

DirectX修复工具V4.0增强版

DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复

20行代码教你用python给证件照换底色

20行代码教你用python给证件照换底色

2019 Python开发者日-培训

本次活动将秉承“只讲技术,拒绝空谈”的理念,邀请十余位身处一线的Python技术专家,重点围绕Web开发、自动化运维、数据分析、人工智能等技术模块,分享真实生产环境中使用Python应对IT挑战的真知灼见。此外,针对不同层次的开发者,大会还安排了深度培训实操环节,为开发者们带来更多深度实战的机会。

我以为我对Mysql事务很熟,直到我遇到了阿里面试官

太惨了,面试又被吊打

相关热词 c#对文件改写权限 c#中tostring c#支付宝回掉 c#转换成数字 c#判断除法是否有模 c# 横向chart c#控件选择多个 c#报表如何锁定表头 c#分级显示数据 c# 不区分大小写替换
立即提问
相关内容推荐