如何将vector的值写入QFile,有几种方式,请全部列出如果超过
时间: 2023-05-21 14:04:12 浏览: 98
一个方式?
有两种方式可以将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中。
QByteArray写入QFile
使用QFile和QByteArray可以将字节数组写入文件中。以下是一个示例代码:
```c++
#include <QFile>
#include <QByteArray>
int main()
{
QFile file("example.txt");
if (file.open(QIODevice::WriteOnly)) {
QByteArray byteArray("Hello, world!");
qint64 bytesWritten = file.write(byteArray);
file.close();
}
return 0;
}
```
在这个示例中,我们创建了一个名为example.txt的文件,并且以只写模式打开它。我们将要写入的字节数组存储在一个QByteArray中,然后使用QFile的write()函数写入该字节数组。最后,我们关闭文件并返回0。
请注意,write()函数返回写入文件的字节数,因此你可以使用此值来检查是否成功写入文件。
阅读全文
相关推荐
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)