我是靠谱客的博主 欣喜豆芽,最近开发中收集的这篇文章主要介绍QBuffer类,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

开发工具与关键技术: 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类所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部