QT实现保存学生信息,包括id name score到XML文件中,C++
时间: 2023-11-27 11:53:15 浏览: 26
以下是一个简单的示例程序,演示了如何使用Qt保存学生信息到XML文件中。
```cpp
#include <QCoreApplication>
#include <QXmlStreamWriter>
#include <QFile>
#include <QDebug>
struct Student {
int id;
QString name;
int score;
};
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 创建一个学生列表
QList<Student> students;
students.append({1, "Alice", 90});
students.append({2, "Bob", 80});
students.append({3, "Charlie", 70});
// 创建一个XML文件
QFile file("students.xml");
if (!file.open(QIODevice::WriteOnly)) {
qWarning() << "Failed to open file";
return 1;
}
// 写入XML数据
QXmlStreamWriter writer(&file);
writer.setAutoFormatting(true);
writer.writeStartDocument();
writer.writeStartElement("students");
for (const auto &student : students) {
writer.writeStartElement("student");
writer.writeAttribute("id", QString::number(student.id));
writer.writeTextElement("name", student.name);
writer.writeTextElement("score", QString::number(student.score));
writer.writeEndElement();
}
writer.writeEndElement();
writer.writeEndDocument();
// 关闭文件
file.close();
qDebug() << "Students saved to XML file.";
return 0;
}
```
这个程序使用了`QXmlStreamWriter`类来写入XML数据。它可以自动格式化输出并处理特殊字符。在本例中,我们创建一个`QList`来保存学生列表,并将其写入XML文件中。我们使用`writeStartDocument`和`writeEndDocument`方法来写入XML文件的头和尾,并使用`writeStartElement`和`writeEndElement`方法来写入元素。我们使用`writeAttribute`方法来写入学生ID,使用`writeTextElement`方法来写入学生姓名和分数。
通过运行程序,我们会在根目录下生成一个名为`students.xml`的XML文件,包含以下内容:
```xml
<?xml version="1.0"?>
<students>
<student id="1">
<name>Alice</name>
<score>90</score>
</student>
<student id="2">
<name>Bob</name>
<score>80</score>
</student>
<student id="3">
<name>Charlie</name>
<score>70</score>
</student>
</students>
```
这个XML文件包含了学生列表中每个学生的ID、姓名和分数。