2012-04-15 113 views
0

我有字符数组,我想把它写到txt文件中,但是以字节为单位。在C++中写入字节到流中

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

这将写入文件的字符,但我想写字节。如果有字符'a',我想写'97'。谢谢。

+2

一个'char'是通过定义一个字节,所以你的问题是一个有点无厘头,但你可能想'sw.write()'。 – ildjarn 2012-04-15 20:47:14

+0

如何定义“byte”? – 2012-04-15 20:48:53

+0

你想编写“9”和“7”或原始二进制字节吗? – jrok 2012-04-15 20:49:20

回答

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

这将一个字符转换 'a' 到一个int(或字节)值97.

+0

非常感谢。这正是我期待的。编辑:它不工作,因为'í'它会写-19。那么如何正确写入? – Hlavson 2012-04-15 20:54:45

+1

@Hlavson:'(int)(unsigned char)mArray [i]'。可能只是'(无符号字符)mArray [i]'也足够了。 – celtschk 2012-04-15 21:04:55

+0

是的,这是完全正确的。 – Hlavson 2012-04-15 21:06:23

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); 
}