如何将vector的值写入QFile,有几种方式,请全部列出如果超过
时间: 2023-05-21 16:04:12 浏览: 100
一个方式?
有两种方式可以将vector的值写入QFile:
第一种方式是使用逐个元素写入的方法,即使用QDataStream类。具体的代码如下:
QFile file("test.txt");
if (file.open(QIODevice::WriteOnly)) {
QDataStream out(&file);
std::vector<int> vec{1, 2, 3, 4, 5};
for (const auto& elem : vec) {
out << elem;
}
file.close();
}
第二种方式是将整个vector写入QFile,即使用QByteArray类。具体的代码如下:
QFile file("test.txt");
if (file.open(QIODevice::WriteOnly)) {
std::vector<int> vec{1, 2, 3, 4, 5};
QByteArray byteArray(reinterpret_cast<const char*>(vec.data()), vec.size() * sizeof(int));
file.write(byteArray);
file.close();
}
如果还有其他的写入方式,我会再补充的。
相关问题
如何将vector的值写入QFile
要将vector的值写入QFile中,您需要首先打开QFile并创建一个QTextStream。使用QTextStream对象,您可以将vector中的值逐一写入QFile。以下是示例代码:
```c++
#include <QtWidgets/QApplication>
#include <QFile>
#include <QTextStream>
#include <vector>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// 创建vector并添加值
std::vector<QString> vec;
vec.push_back("Hello");
vec.push_back("CSDN");
vec.push_back("C++");
// 打开QFile并创建QTextStream
QFile file("myFile.txt");
file.open(QIODevice::WriteOnly | QIODevice::Text);
QTextStream out(&file);
// 使用QTextStream对象将vector逐一写入QFile
for(auto& str: vec){
out << str << "\n";
}
// 关闭文件
file.close();
return a.exec();
}
```
在这个示例中,我们首先创建了一个vector,并添加了一些值。然后,我们打开了一个QFile并创建了一个QTextStream对象。最后,我们使用QTextStream对象将vector中的值逐一写入QFile中。
QFile有哪些打开方式
QFile是Qt库中的一个文件处理类,在使用它时,你可以以几种不同的模式打开文件。以下是QFile常见的打开方式:
1. **读取模式** (`QIODevice::ReadOnly` 或 `QFile::Read-only`):用于只读访问文件内容。
2. **写入模式** (`QIODevice::WriteOnly` 或 `QFile::Write-only`):覆盖原有内容并允许向文件追加数据,但不允许读取。
3. **追加模式** (`QIODevice::Append` 或 `QFile::Append-once`):如果文件已存在,则在文件末尾追加数据;如果文件不存在,则创建新文件。
4. **二进制模式** (`QIODevice::Binary`): 用于处理二进制数据,如图像、音频等。
5. **文本模式** (`QIODevice::Text`): 默认模式,适用于文本文件,会自动处理换行符和编码转换。
当你创建QFile实例并设置模式时,通常使用`open()`函数指定打开方式,例如:
```cpp
QFile file("example.txt", QIODevice::ReadWrite);
if (file.open()) {
// 文件操作...
} else {
qDebug() << "Failed to open file.";
}
```
阅读全文
相关推荐
















