我试图创建一个简单的加密 - 解密程序(仍然停留在I / O,tho):
ifstream f("a.in", ios::binary);
ofstream g("a.out");
char x1, x2;
int x,j=0;
f.get(x1);
while(f.get(x2))
{
if(j==10)
{
g<<'\n';
j=0;
}
x=x1+x2;
x1=x2;
g<<x<<' ';
j++;
}
现在,代码与ASCII文本完美匹配,但是使用unicode无法实现。
我的想法是,通过一次读取一个字节(8位类型),我不必担心多字节字符,我假设二进制模式允许我这样做。
理论上听起来很棒,而不是在实践中,因为程序在第一个unicode角色崩溃了。 任何人都能指出我在正确的方向吗?我已经非常广泛地搜索了网络,但显然它并不是经常被问到的。
TL; DR: 如何一次读取8位,无论其内容如何?
答案 0 :(得分:0)
尝试
f.read(&amp; x1,1;)
get()用于文本,而不是二进制数据。