在我的大多数代码中,in.peek()
的工作原理是获取下一个字符应该是什么。然而,当它读取一些符号时,它返回的是一个数字而不是字符,我不知道如何修复它以获得我想要的符号。
文本文件显示:
打印"早上好";
但是在";char我使用file.peek()
读取下一个符号是;
来更改开关的状态,但它显示为数字而不是符号。
这就是我尝试打印的方式,我甚至创建了一个临时char
并将其设置为in.peek()
,但这只是一个空白。
char temp = in.peek();
cout<<"hit " << ch << " "<< in.peek()<<" "<<temp << endl;
输出为:"hit " 10 "
最后一位是空白。有人知道我如何解决这个问题,这样我就可以得到;
了吗?
peek
返回一个int
(以说明eof()
的可能性(。为了确保cout
将其识别为char
,您可以对其进行强制转换(尽管如果您确实命中EOF,这将产生不正确的值(,例如:
cout << "hit " << ch << " " << static_cast<char>(in.peek()) << " " << temp << endl;