如何使用ostream_iterator打印到文件
How to print to file using ostream_iterator?
我有以下代码(从这里开始)来随机化 1500 个值的向量,我想将它们放在文本文件中,但不能。老实说,我不完全了解这段代码是如何工作的,所以我希望有人向我解释它是如何工作的和/或如何将输出更改为文件。
#include <iostream>
#include <random>
#include <algorithm>
#include <iterator>
#include <fstream>
int main() {
std::vector<int> v;
for (int i; i<1500; ++i){
v.push_back(i);
}
std::random_device rd;
std::mt19937 g(rd());
std::shuffle(v.begin(), v.end(), g);
std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
std::cout << "n";
return 0;
}
std::cout
的类型和 std::ofstream
的类型都派生自 std::ostream
,这与 std::ostream_iterator
操作的类型相同:
#include <iostream>
#include <random>
#include <algorithm>
#include <iterator>
#include <fstream>
void emit_values(std::ostream& os)
{
std::vector<int> v;
for (int i = 0; i<1500; ++i){
v.push_back(i);
}
std::random_device rd;
std::mt19937 g(rd());
std::shuffle(v.begin(), v.end(), g);
std::copy(v.begin(), v.end(), std::ostream_iterator<int>(os, " "));
os << "n";
}
int main()
{
// use stdout
emit_values(std::cout);
// use a file
std::ofstream fs("values.txt");
emit_values(fs);
fs.close();
return 0;
}
相关文章:
- 回溯C++不打印函数,因此文件
- 在gem5中打印文件中的所有cache_blocks
- 打印逐行存储的文本文件
- 读取文件中所有可能的十六进制 16 字节序列并打印每个序列
- C/C++:打印(配置)头文件的内容
- 如何使代码打印文本文件中的第一行?
- 如何将文本文件读取到二维数组中并以 c++ 打印
- 按单词搜索文件,然后在C++中打印特定行数
- C++ 尝试优化每一帧将数据打印到二进制文件
- 如何访问头文件中类的组件并打印它们的地址?
- 如何在c ++中以一行(水平)打印两个文件的数据?如给定的.这两种形式来自两个不同的文本文件
- 使用 fstream 库并在屏幕上打印的文件有问题?
- 如何在几个空行后打印文件中的输出
- 二进制文件以及如何对其采取行动(打印文件)
- C 获取目录路径,解析文件夹名称和来自Parent Directory的打印文件内容
- 打印文件中的文本
- 如何打印文件的内容
- 打印文件的分段故障特征
- 打印文件夹中的文件
- 用c++打印文件的第n列