一次读取一个字节的unicode

时间:2017-07-20 04:59:44

标签: c++ unicode

我试图创建一个简单的加密 - 解密程序(仍然停留在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位,无论其内容如何?

1 个答案:

答案 0 :(得分:0)

尝试

f.read(&amp; x1,1;)

get()用于文本,而不是二进制数据。