std::vector
の長さがN
で、long, string, double
のタイプがいくつかあります。私は簡単にLinuxの中で読むことができ、それがバイナリに書き込まれますios::binary flag
を使用していないもののofstreamを使用すると、ios :: binaryフラグなしでバイナリを書き込むC++
int N = 100;
std::vector<std::string> var1String(N), var2String(N), var3String(N), var4String(N);
std::vector<long> var1Long(N);
std::vector<double> var1Double(N);
...
std::ofstream f(path2file);
for(int i=0; i<N; i++)
{
f << var1String[i] << " " << var2String[i] << " " << var1Long[i] << " " << var3String[i] << " " << var1Double[i] << " " << var4String[i] << std::endl;
}
:私は、プレーンテキストファイルには、この方法でそれを記述しようとしています。しかし、私はそれを平易なASCIIテキストファイルに書きたい。 (注:var1Long[i]
とvar1Double[i]
を文字列に変換してみましたが、違いはありません)。私は間違って何をしていますか?
EDIT:サーバーからの出力をASCII形式のベクトルに変換する、より大きなプログラムの一部です。私が言ったように、Linuxでバイナリを読んだり、std::cout
を代わりに使ってプログラムを実行すると、f
はうまく印刷されます。私はストリームがバイナリとして渡される原因を理解していません。
出力例を投稿できますか? (16進、ASCII) – LogicStuff
これは再現できません、これはテキストファイルを作成するだけですか? - 問題を再現するために実際のコードを投稿してください。これはコンパイルされません(varLong1は宣言されていません) – stijn