Qt 读写txt文本文件

打开文件时,使用参数选择打开文件模式

需要导入QFile和qDebug、QString头文件

写入

覆盖写入

 QFile f("D:\\qtManager.txt");
 if(!f.open(QIODevice::WriteOnly | QIODevice::Text))
 {
     qDebug() << ("打开文件失败");
 }
 QTextStream txtOutput(&f);
 QString str = "123";
 txtOutput << str << endl;
 f.close();

文末写入

 QFile f("D:\\qtManager.txt");
 if(!f.open(QIODevice::ReadWrite | QIODevice::Append))   //以读写且追加的方式写入文本
 {
     qDebug() << ("打开文件失败");
 }
 QTextStream txtOutput(&f);
 QString str = "123";
 txtOutput << str << endl;
 f.close();

读取

  QFile f("D:\\qtManager.txt");
  if(!f.open(QIODevice::ReadOnly | QIODevice::Text))
  {
      qDebug() << ("打开文件失败");
  }
  QTextStream txtInput(&f);                 
  QString lineStr;
  while(!txtInput.atEnd())
  {
     lineStr = txtInput.readLine();
     qDebug() << (lineStr);
 }
 f.close();

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Qt中,可以使用QFile和QTextStream类来实现对txt文本的写入操作。首先,需要包含相应的头文件: ``` #include <QFile> #include <QTextStream> ``` 然后,创建一个QFile对象,并打开要写入的txt文件: ``` QFile file("example.txt"); if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) { // 文件打开失败,进行错误处理 } ``` 接下来,创建一个QTextStream对象,并将其与QFile对象关联起来: ``` QTextStream out(&file); ``` 然后,可以使用<<操作符将数据写入txt文件。如果要写入中文字符串,需要确保文件的编码方式是UTF-8: ``` out.setCodec("UTF-8"); out << "这是一段中文文本" << endl; out << "中文字符测试" << endl; ``` 写入完成后,需要关闭文件: ``` file.close(); ``` 以上就是在Qt中将中文写入txt文本的基本步骤。需要注意的是,如果txt文件的编码方式与程序所使用的编码方式不一致,可能会出现乱码问题。因此,建议在读取或写入文本时,始终使用相同的编码方式,以避免出现乱码情况。 ### 回答2: 在Qt中,要将中文写入txt文本文件,可以使用QFile和QTextStream进行操作。 首先,我们需要创建一个QFile对象,用于打开和写入txt文件。可以使用QFileDialog来选择要保存的文件路径和名称,或者直接指定一个文件路径。 接下来,我们将文件以WriteOnly的模式打开,即只写模式,这样可以确保只有写入操作,而不会进行读取操作。如果文件不存在,则会新建一个文件。 然后,我们创建一个QTextStream对象,用于写入数据到文件。通过setCodec函数设置文件编码为UTF-8,以支持中文字符。然后,使用<<运算符将中文字符写入QTextStream对象中。 最后,记得关闭文件和释放资源,使用close()函数来关闭QFile对象。 下面是一个示例代码: ``` #include <QFile> #include <QTextStream> #include <QFileDialog> void writeChineseToTxt() { QString filePath = QFileDialog::getSaveFileName(nullptr, "保存txt文件", "", "文本文件 (*.txt)"); QFile file(filePath); if(!file.open(QIODevice::WriteOnly | QIODevice::Text)) { qWarning("文件无法打开"); return; } QTextStream out(&file); out.setCodec("UTF-8"); QString chineseText = "这是一段中文文本"; out << chineseText; file.close(); } ``` 以上代码中,利用QFileDialog类创建了一个文件对话框,让用户选择文件的保存路径和名称。接着,使用QFile打开文件,并判断文件是否成功打开。然后,使用QTextStream对象out来写入文本数据。将文本编码设置为UTF-8,然后使用<<运算符将中文文本写入QTextStream对象。最后,关闭文件。 希望以上回答能够对您有所帮助! ### 回答3: 在Qt中,可以使用QTextStream类来写入中文文本文件。首先,需要打开一个文本文件并将其与一个QFile对象相关联。然后,可以创建一个QTextStream对象,并将其与这个文件相关联。 以下是一个使用QTextStream写入中文文本的示例: ```cpp #include <QTextStream> #include <QFile> int main() { QFile file("text.txt"); // 打开一个文本文件 if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) return -1; QTextStream txtStream(&file); // 创建一个QTextStream对象并与文件关联 txtStream.setCodec("UTF-8"); // 设置文本编码为UTF-8(可以根据实际需要设置其他编码) QString chineseText = "这是一段中文文本。"; // 要写入的中文文本 txtStream << chineseText; // 将中文文本写入QTextStream file.close(); // 关闭文件 return 0; } ``` 这段代码会将一个包含中文文本"这是一段中文文本。"的字符串写入名为"text.txt"的文本文件文件的编码为UTF-8。通过设置QTextStream的编码,可以确保能正确地处理中文字符的读写。 需要注意的是,如果要在写入文本前在文件中保留现有内容,可以使用QIODevice::Append打开文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值