如何在用户输入值后写入.csv文件的下一行,而不会覆盖以前的值?

  • 本文关键字:一行 覆盖 用户 文件 csv c++ qt c++11 qt5
  • 更新时间 :
  • 英文 :


这是我在stackoverflow上的第一篇文章,所以如果我做错了什么,我深表歉意。

我正在创建这个程序,学生可以在其中刷卡,它会提示他们输入他们的名字。完成后,程序会将所有内容写入csv文件。我的问题是这些条目被输入的最后一个条目覆盖。有没有办法让程序将所有条目写入csv文件而不会被最后一个条目覆盖?

这是我用来将条目写入 csv 文件的函数。

void firstTimeDialog::on_buttonBox_clicked(QAbstractButton *button)
{
QFile studentLogIn("studentLogin.csv");
QTextStream write(&studentLogIn);
if(!studentLogIn.open(QFile::WriteOnly | QFile::Text))
{
QMessageBox::warning(this, "title", "studentLogIn.csv isn't open");
}
write << getIDNumber() << ", " << getName() << endl;
}

getIDNumber() 和 getName() 函数仅返回学生的 ID 号和学生的姓名。

如果我要打开csv文件,我希望它显示: (使用逗号表示 csv 文件的下一个单元格)

12345678,约翰·

87654321, 弗兰克

·

01234556,鲍勃·

相反,它向我显示了最后一个条目,即

01234556,鲍勃·

您必须使用标志QIODevice::Append才能将其写入文件末尾:

if(!studentLogIn.open(QFile::WriteOnly | QFile::Text | QFile::Append))

相关内容

  • 没有找到相关文章

最新更新