请教关于c++的问题,高手指点一下啊
#include <iostream.h>
char encode(char ch)
{
return(~ch);
}
void main()
{
char c;
cout < < "请输入加密的字符: ";
cin> > c;
c=encode(c);
cout < < "字符加密后为: " < <c < <endl;
c=encode(c);
cout < < "字符解密后为: " < <c < <endl;
}
输入任何一个字符,字符加密后为总是输出"?"号,为什么啊!!!
[解决办法]
只有一个字节,超出了可见字符的范围(0x20~0x7F),就只有显示?或一个黑方块了。
[解决办法]
你的算法..
你可以先自己测试个值,
通过 ~ 运算后赋值给char会不会溢出
[解决办法]
因为你的char是有符号类型,所以它的第一个二进制位是0.
而当你取反之后,第一位是1了,也就是溢出,所以只能产生一些符号之类的东西
[解决办法]
改用指针 应该可以