QT中操作Txt文件(Qt中QString与QByteArray互相转化方法)

2023-05-16

Qt如何把QString写入txt文件中

1 示范代码
由于write不能把QString直接写入文件中,因此有两种方法来处理:

1 使用QTextStream类(中英文都可以存)
//读入文件
    QFile file;
    file.setFileName("C:/Users/Admin/Desktop/data2/1.txt");
    QByteArray data;
    if(file.open(QIODevice::ReadOnly)){
       data = file.readAll();
       file.close();
    }
//转换为16进制的QString(不需要)
    QString res ="";
    QString temp = data.toHex().toUpper();
    for(int i = 0;i < temp.size(); i += 2){
        res += "0x" + temp.mid(i, 2) + ",";
    }
//写入文件【重点】
    file.setFileName("C:/Users/Admin/Desktop/data2/3.txt");
    if(file.open(QIODevice::WriteOnly |QIODevice::Text)){
        QTextStream stream(&file);
        stream<<res<<"\n";
        file.close();
    }

2 把QString转为QByteArray
如果是英文选择下面的方法(toLatin1()),如果输入中文则会出现类似于????????????????乱码的情况:
//写入文件
        file.setFileName("C:/Users/Admin/Desktop/data2/4.txt");
        if(file.open(QIODevice::WriteOnly )){
            QByteArray res2 = res.toLatin1();//toLatin1()转为QByteArray
            file.write(res2);
            file.close();
        }

- 如果是中文使用(toUtf8());    

        file.setFileName("C:/Users/Admin/Desktop/data2/5.txt");
        if(file.open(QIODevice::WriteOnly )){
            QByteArray res2 = res.toUtf8();//toLatin1()转为QByteArray
            file.write(res2);
            file.close();
        }

- 或者是转为string,然后再把string转为char*:

        file.setFileName("C:/Users/Admin/Desktop/data2/6.txt");
        if(file.open(QIODevice::WriteOnly )){
            std::string res2 = res.toStdString();//string
            const char* res3 = res2.c_str();//char*
            file.write(res3);
            file.close();
        }

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

Qt中QString与QByteArray互相转化方法

// QString转QByteArray方法

//Qt5.9.6
QString str("Hello World"); 
QByteArray bytes = str.toUtf8(); // QString转QByteArray方法1
  
QString str("Hello World"); 
QByteArray bytes = str.toLatin1();  // QString转QByteArray方法2

//QByteArray转QString方法

//Qt5.9.6
    QByteArray bytes("Hello World");
    QString str = bytes;               // QByteArray转QString方法1
  
    QByteArray bytes("Hello World");
    QString str;
    str.prepend(bytes);                // QByteArray转QString方法2
  
    qDebug() << string;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QT中操作Txt文件(Qt中QString与QByteArray互相转化方法) 的相关文章

  • 【C++】ifstream读取txt文件内容

    头文件 include lt iostream gt include lt fstream gt include lt cassert gt include lt string gt 1 逐行读入文件 void readTxt string
  • cmake, make, CMakeLists.txt, Makefile简介

    文章目录 cmake make CMakeList txt Makefile之间的关系参考文章链接 xff1a 转自个人博客 在各种开源项目中 xff0c 经常会发现项目中除了代码源文件 xff0c 还包含了 CMakeList txt M
  • Matlab 读取txt文本中的数据

    使用matlab读取txt文本中的数据 数据最好有一定的规律 我们可以使用函数importdata来导入数据 下面使用一个例子来说明该函数的使用 start path C 设置默认文件夹 filename pathname uigetfil
  • ROS Catkin 教程之 CMakeLists.txt

    1 概览 CMakeLists txt 是用 CMake 构建系统构建 ROS 程序包的输入文件 任何兼容 CMake 的包都包含一个或多个 CMakeLists txt 文件 xff0c 用以描述怎样构建和安装代码 catkin 项目采用
  • cmake之CMakelist.txt的使用

    文章目录 常用命令1 指定 cmake 的最小版本2 打印信息2 1 打印普通信息2 2 打印告警2 3 打印错误 3 项目名称4 设置变量5 查找指定的库文件6 设置包含的目录7 设置链接库搜索目录8 指定编译包含的源文件8 1 明确指定
  • ROS中的CMakeLists.txt

    在 ROS的编程过程中 xff0c 如果 CMakeLists txt如果写不好 xff0c 编译就很难成功 如果看不懂 CMakeLists txt那么很多错误你也不知道时什么回事 所以深入了解它是很右必要的 现在我们就来看看它 我们使用
  • python open按行读取txt 去掉\n

    加 strip 39 n 39
  • qt程序的CMakeLists.txt配置转为平台的qt的.pro项目工程文件

    参考这个 跨平台qt程序的CMakeLists txt配置转为平台的qt的 pro项目工程文件 谁能懂我2011的博客 CSDN博客 一些比较正规的跨平台qt项目没有 pro项目文件只有CMakeLists txt文件 xff0c 如果要编
  • CMakeLists.txt与Makefile 的区别

    我平时一般是在windows使用VS编程 xff0c 但是偶尔在网上查资料的时候也会下载一些别人的代码 xff0c 其中就经常对CMakeLists txt和Makefile文件产生疑惑 xff0c 下面我来分析一下这两个经常使用的地方 C
  • QString : 类型转换,不留神就留坑?

    QString作为Qt中内置的数据类型 功能强大且使用方便 绝对是在Qt开发过程中出场率最高的数据类型 本篇我们只重点探讨下QString转换成其他数据类型的注意事项 short toShort bool ok nullptr int ba
  • QString,const char*,char*相互直接转换方法

    整合网络上的解决方法 解决方法一 1 string转const char string s abc const char c s s c str const char 转string 直接赋值即可 const char c s abc st
  • QT 在Windows下显示中文乱码的问题

    前一段时间刚刚使用qt在显示表格数据的时候 发现输出中文是乱码的 比如在显示字符串加上变量输出的的时候一般在MFC方法有很多 但是在QT上初始化字符串加上变量的话就得这么写 QString 第 1跟 arg 16 i 但是这样的话 中文就会
  • 将多个 ID 映射到 Active Directory 中的电子邮件地址并将结果输出到单个文件

    我正在尝试找到一种方法 将多个用户的 ID 映射到 Active Directory AD 中的关联电子邮件地址 然后将输出附加到 txt 文件中 最终生成包含电子邮件地址列表的单个文件 通过利用 PowerShell AD 工具的以下命令
  • 非 QObject 派生类是否应该“始终”放入堆栈中?

    来自 Symbian 世界 我习惯于尽可能多地使用堆以避免耗尽堆栈空间 特别是在处理描述符时 CBase 派生类总是在堆上动态分配 因为如果不这样做 它们的成员变量将保持未初始化状态 相同的约定是否适用于 QObject 派生类 在 Qt
  • 如何在 QLineEdit 中使用 std::string ?

    我有以下问题 我正在尝试将我编写的大量代码与 Qt 界面集成 我的一些函数返回std string 我没有成功制作QLineEdit setText接受它们 其他函数返回char不要给我带来问题 我应该怎么办 谢谢 朱塞佩 尝试这个 std
  • 查找包含值的单元格的索引并突出显示 QTableView 中的所有这些单元格

    我们如何使用 QT c 找出 QTableView 中包含 QString 的单元格的索引 即行号和列号 P S 无需点击qtableview中的单元格 您可以使用findItems 功能找到您的细胞 findItems 函数使用给定标志在
  • QFile:如何有效地读取从 k 到 k+L 的字节

    我可以从 QFile 读取从 k 到 k L 的字节 将第一个整个文件读入 QByteArray if file open QIODevice ReadOnly QByteArray blob file readAll QByteArray
  • [Python进阶] Python处理txt文件:open

    7 1 Python处理txt文件 open 在Python中 通过open函数可以打开一个文件 创建一个file对象 然后对该对象进行读写 函数语法 open name mode buffering 参数说明 name 文件名 mode
  • QString 到 unicode std::string

    我知道有很多关于转换的信息QString to char 但我仍然需要对这个问题进行一些澄清 Qt提供QTextCodecs 要转换QString 内部以 unicode 形式存储字符 QByteArray 允许我检索char 它表示某种非
  • 将 QStringList (PyQt) 转换为普通的 Python 列表

    我想获取 qstringlist 中的每个元素并从列表中获取原始数据 而不是 pyqt 将其存储为的任何数据 def find self self foundFileList setRowCount 0 fileName self inpu

随机推荐