ここに精神的に非常に似ている質問があります。残念ながら、その質問はあまり反応を促しませんでした。別の方法が提案されることを期待して、より具体的な質問をしたいと思いました。
std::cin
バイナリファイルを(with )に書き込んでいますtar --to-command=./myprog
。バイナリファイルはたまたまfloatのセットであり、データを入れたいと思いますstd::vector<float>
-理想的にはc++の方法です。
私は非常にうまく生成できます(この回答std::vector<char>
のおかげで )
#include <fstream>
#include <iostream>
#include <iterator>
#include <algorithm>
#include <vector>
int
main (int ac, char **av)
{
std::istream& input = std::cin;
std::vector<char> buffer;
std::copy(
std::istreambuf_iterator<char>(input),
std::istreambuf_iterator<char>( ),
std::back_inserter(buffer)); // copies all data into buffer
}
私は今、自分std::vector<char>
をstd::vector<float>
、おそらくwithstd::transform
と変換を行う関数(たとえば、achar[2]
からa )に変換したいと思っていfloat
ます。しかし、私は苦労しています。なぜなら、私std::vector<float>
の要素はの半分になるからstd::vector<char>
です。2のストライドで繰り返すことができれば、私は大丈夫だと思いますが、前の質問から、私はそれを行うことができないようです(少なくともエレガントではありません)。