如何从int一次写入一个字节的文件? C ++

时间:2018-05-18 22:07:31

标签: c++ int output byte

我在C ++中一次写一个字节的文件。到目前为止,我有一个这样的代码:

if ( i == 0 ) { outputfile << '\x0';}
if ( i == 1 ) { outputfile << '\x1';}
....
if ( i == 254 ) { outputfile << '\xfe';}
if ( i == 255 ) { outputfile << '\xff';}

它可以工作,但你可以想象这是额外的255行。如果我使用的是Python,那就简单了:

output.write(bytes((i,)))

是否有更简单的方法将单字节整数写入字节?最喜欢几行代码?

我过去一天尝试过使用char和一些转换,但我根本不擅长处理这种数据类型。我写的文件最终被破坏了。即使我得到正确的文件大小,它在磁盘上占用的大小也应该是我尝试的时候。

感谢您阅读

2 个答案:

答案 0 :(得分:3)

在每一行中,您只需将int val _arr = tList.toArray for (i <- 0 to (_arr.length - 1)) { val il = _arr(i).l.toSet val ic = _arr(i).c for (j <- 0 to (_arr.length - 1)) { val jl = _arr(j).toSet val jc = _arr(j).c if (i != j && il.subsetOf(jl) && ic >= jc) { tList.-=(_arr(i)) } } } 转换为i

这符合您所有代码的逻辑。

char

,您可能不想要outputfile << static_cast<char>(i); 使用的文字格式,而应该写一下:

operator <<

答案 1 :(得分:0)

您不需要任何if次声明。只需打印(char) i

当您在变量之前的括号中放置数据类型(如char,int,double,float)时,这会将该变量转换为该类型。

(int) 'a'会转换字符&#39; a&#39;到值为97的整数。

(char) 97会将整数97转换为字符&#39; a&#39;。

你可以使用类型转换做各种各样的事情,你应该知道可能出现溢出,但我会把它作为你研究的东西。