有没有办法在下面的演示代码中区分第一个值(保存为unsigned char
的数字10)与换行符?
int main() {
unsigned char ch1(10), ch2('\n');
std::cout << (int)ch1 << " " << (int)ch2 << std::endl;
}
输出
10 10
我想写一个文件,如无符号字节,但也希望换行符可以与数字&#39; 10&#39;在以后阅读。
有什么建议吗?
的问候, NIKHIL
答案 0 :(得分:1)
没有办法。您编写相同的字节,并且不保留其他信息。
您需要考虑编码值的其他方法,或为您的标记保留一个值(如255或0)。当然,您需要确保输入中不存在此值。
使用一个字节值作为“特殊”字符来转义控制代码的其他可能性。类似于'\'用于赋予'\ n'中'n'特殊含义。但它使所有解析更复杂,因为您的值现在可能是一个或两个字节长。除非你在内存方面承受着很大的压力,否则我建议将值存储为字符串表示,这通常更具可读性。
答案 1 :(得分:0)
不,值为10的char是换行符。看看ascii table。您将看到数字10将是两个不同的字符(分别为49和48)。