为什么当我在C++中使用file.peek()时,我会得到一个数字而不是字符

  • 本文关键字:一个 数字 字符 C++ peek file c++
  • 更新时间 :
  • 英文 :


在我的大多数代码中,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;

最新更新