当前位置: 代码迷 >> QT开发 >> 为何从lineEdit写入到txt文本的数据都被覆盖了呢
  详细解决方案

为何从lineEdit写入到txt文本的数据都被覆盖了呢

热度:106   发布时间:2016-04-25 04:42:05.0
为什么从lineEdit写入到txt文本的数据都被覆盖了呢?
3个lineEdit数值是实时写入到txt文本中的,但是光标一直都在文件头,怎么样才能使光标停留在数据末尾呢?
QFile file("C:\\2012\\06\\01\\02.txt");
  if(file.open(QFile::WriteOnly))
  {
  QTextStream out(&file);
  out<<ui->lineEdittime->text();
  out<<" ";
  out<<ui->lineEdit->text();
  out<<ui->lineEdit_1->text();
  out<<ui->lineEdit_2->text();
  out.seek(out.pos());//定位文件当前坐标的位置
  out.seek(29);//移动29个字节
  file.write("\r\n");//换行符
  file.close();

  }

上面的程序是错误的,光标一直在文件首,请问下,该怎么改呢?

------解决方案--------------------
if(file.open(QFile::Append)) 只要这里改一下
{
QTextStream out(&file);
out<<ui->lineEdittime->text();
out<<" ";
out<<ui->lineEdit->text();
out<<ui->lineEdit_1->text();
out<<ui->lineEdit_2->text();
out.seek(out.pos());//定位文件当前坐标的位置 这个没有用,本来就在pos这里
out.seek(29);//移动29个字节 将文件写指针移动到文件头29字节处
蓝色的没有用可以删除
file.write("\r\n");//换行符 29字节后面换行 
file.close();

}
------解决方案--------------------
探讨
if(file.open(QFile::Append)) 只要这里改一下
{
QTextStream out(&amp;file);
out<<ui->lineEdittime->text();
out<<" ";
out<<ui->lineEdit->text();
out<<ui->lineEdit_1->text();
out<<ui->lineEdit……