2016-06-17 5 views
0

は私がフォーマットされていない一時ファイルに整数のvectorを書くことを考える:ファイルへの書式なし書込みを実行できますか?整数書式用の書式付き書込みを実行できますか?

ifstream foo("foo.txt", ios::binary); 
size_t size; 

foo.read(reinterpret_cast<char*>(size), sizeof(size)); 
input.resize(size); 

if(!empty(input)) copy(istream_iterator<decltype(output)::value_type>(foo), istream_iterator<decltype(output)::value_type>(), begin(input)); 

答えて

1

ofstream foo("foo.txt", ios::binary); 
const auto length= size(output); 

foo.write(reinterpret_cast<const char*>(length), sizeof(length)); 

if(!empty(input)) foo.write(reinterpret_cast<const char*>(data(output)), sizeof(decltype(output)::value_type) * length); 

私は次のようにinputoutputと同じタイプであるファイルから、後で読んでフォーマットされ行うことができます

ファイルへの書式なし書込みを実行できますか?整数書式用の書式付き書込みを実行できますか?

いいえ、できません。

フォーマットされていない書き込みを使用してデータが書き込まれるファイルの内容は、書式付きの書き込みとは大きく異なります。フォーマットされた読み取りは、フォーマットされていないデータを正確に解釈することはできません。

+0

'char'についてはどうですか?私はフォーマットされた書き込みとフォーマットされていない読み取りを行うという問題だけを見る。 – LogicStuff

+0

@LogicStuff、フォーマットされた読み込みを実行するときに空白をスキップしない限り、 'char'はOKです。 –

+0

@LogicStuffあなたは 'char'について正しいですが、私はちょうどこの恥ずかしい質問の全部で脳のおならを持っていました。 –

関連する問題