2012-04-15 29 views
0

私はchar配列を持っていますが、それをバイト単位でtxtファイルに書きたいと思います。C++でofstreamにバイトを書きます

ofstream sw("C:\\Test.txt"); 
for(int i = 0; i < 256; i++) 
{ 
    sw << (byte)myArray[i]; 
} 

これはファイルに文字を書き込みますが、バイトを書きたいと思います。文字 'a'がある場合は '97'と書いておきます。ありがとうございました。

+2

を 'char'ので、あなたの質問は少し無意味ですが、あなたはおそらく')( 'sw.writeをしたい、定義によってバイトです。 – ildjarn

+0

'byte'はどのように定義されていますか? –

+0

'9 'と' 7''または生のバイナリバイトを書きますか? – jrok

答えて

1
ofstream sw("C:\\Test.txt"); 
for(int i = 0; i < 256; i++) 
{ 
    sw << (int)myArray[i]; 
} 

これは「」int型(またはバイト)の値に文字を変換します97

+0

ありがとうございます。それはまさに私が探していたものです。編集:それは動作しません '、' -19を記述します。だからこれを正しく書く方法は? – Hlavson

+1

@Hlavson: '(int)(unsigned char)mArray [i]'。おそらく '(unsigned char)mArray [i]'だけでも十分でしょう。 – celtschk

+0

はい、これは完全に正しく動作します。 – Hlavson

4

バイトまたはバイトのグループのstd :: fstreamのかはstd :: ofstreamのを使用して書き込むには、あなたにwrite()機能を使用します。std::ostream::write()

const int ArraySize = 100; 
Byte byteArray[ArraySize] = ...; 

std::ofstream file("myFile.data"); 

if(file) 
{ 
    file.write(&byteArray[0], ArraySize); 
    file.write(&moreData, otherSize); 
} 
関連する問題