QTextStream

论坛 期权论坛 脚本     
匿名技术用户   2021-1-14 17:14   542   0

写操作:
#include <QtCore/QCoreApplication>
#include <QFile>
#include <QtDebug>
#include <QTextStream>

int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);

QFile file("test.txt");
//---参数:QFile::Truncate表示的是 将原文件内容清空,
//--以WriteOnly方式打开文件,如果在工程文件下没有该txt文件,那么程序将创建该文件,若存在,则将原文件内容清空,
if (file.open(QFile::WriteOnly | QFile :: Truncate))
{
//---创建 QTextStream流操作对象, 使与QFile对象file绑定。
QTextStream out(&file);
//----设置输出格式为: 居中,这里格式还可以设置为:right/left。 占10个字符;
out << "socre:" << qSetFieldWidth(10) << center << 90 << endl;
}
else
{
qDebug() << "open file failed";
}
file.close(); //---关闭文件~~~~~~

//-----输出提示信息
qDebug() << "\1 writing data succesful \1" << endl;

return a.exec();
}
程序运行结果:


QTextStream提供的格式化函数:

QTextStreamManipulator qSetFieldWidth(int width) ------设置字段宽度

QTextStreamManipulator qSetPadChar(QChar ch) ------设置填充字符

QTextStreamManipulator qSetRealNumberPrecision(int precision) -----设置实数精度

读操作:

QFile file("file.txt");

if (!file.open(QIODevice::ReadOnly | QIODevice::Text))

return 0;

QTextStream in(&file);

1.QString QTextStream::read ( qint64 maxlen )

读取txt文件maxlen个字符

QString line1= in.read(1); //读取一个字符

QString line2= in.read(1); //自动读取下一个字符

qDebug()<<line1;

qDebug()<<line2;

QString line1= in.read(20); //读取20个字符,归为一个字符串

2.QString QTextStream::readLine ( qint64 maxlen = 0 )

QString line1= in.readLine(0); //读取第0行文档

QString line2= in.readLine(5); //读取第0行5个文档

qDebug()<<line1;

qDebug()<<line2;

QString line1= in.readLine(); //读取第0行文档

QString line2= in.readLine(); //自动读取第1行文档

qDebug()<<line1;

qDebug()<<line2;

3.QString QTextStream::readAll ()

QString line1= in.readAll(); //读取全部txt文档,并归为一个字符串

4.bool QTextStream::seek ( qint64 pos )

bool a=in.seek(6); //定位文本中的第6个位置

QString line2= in.read(1) ; //读取该位的1字符

qDebug()<<line2;

5.读取txt全部内容的方法

/******************************************

两种方法读取txt文档

*****************************************/

/* while (!in.atEnd()) {

QString line = in.readLine();

qDebug()<<line;

}

QString line3=in.readLine();

while(!line3.isNull())

{

qDebug()<<line3;

line3=in.readLine();

}*/

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP