微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么在C ++中使用file.peek时会得到数字而不是char?

如何解决为什么在C ++中使用file.peek时会得到数字而不是char?

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。