概述
开发工具与关键技术: QT
作者:何文涛
撰写时间:2020-5-15
以下是代码部分:
QBuffer为Qtl里面的缓冲区类
缓冲区的本质就是一段连续的存储空间
在Qt中QBuffer可以看为一个特殊的IO设备
文件辅助类(QDataStream ,QTextStream)可以直接作用于缓冲区类
#include “widget.h”
#include “ui_widget.h”
#include //内存文件
#include
#include //数据流
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
QByteArray array;
QBuffer memFile(&array); //创建内存文件
memFile.open(QIODevice::WriteOnly);
属于一种io设备,这样,我们在使用时,一般都需要先调用open() 打开该buffer,然后在调用write() 或 putChar() 向buffer中写入数据
memFile.write("11111111111111111");//转到内存区
memFile.write("22222222222222222222");
memFile.close();//关闭
qDebug() << memFile.buffer();
qDebug() << "array" << array;
QBuffer memFile1;
memFile1.open(QIODevice::WriteOnly);
QDataStream stream(&memFile1);
stream << QString("测试") << 250;
memFile1.close();
qDebug() << memFile1.buffer();
memFile1.open(QIODevice::ReadOnly);
QDataStream in;
in.setDevice(&memFile1);
QString str;
int a;
in >> str >> a;
memFile1.close();
qDebug() << str.toUtf8().data() << a;
}
Widget::~Widget()
{
delete ui;
}
第一个输出结果:就是前面两个字符串在内存区合并后输出结果
第二个输出结果:把对象输出了与结果一是一样的,只不过前面带了个字符串的array
第三个输出结果:是乱码,因为里面是两种不同的类型不能使用buffer()方法输出
第四个输出结果:就是正确的输出方式,输出合并后的字符串,分别是char和int类型
最后
以上就是欣喜豆芽为你收集整理的QBuffer类的全部内容,希望文章能够帮你解决QBuffer类所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复