C++ c++;istream操作员>&燃气轮机;应为任意输入类型

C++ c++;istream操作员>&燃气轮机;应为任意输入类型,c++,C++,我有一个任务,我希望随机输入chars或ints。有没有办法让我明白接下来会发生什么,然后说cin>>int,或者cin>>char。我想用istream操作符>来做,因为他们告诉我们不要用解析器。准确地说,我希望输入前缀表达式。所以我不知道什么时候读算符,什么时候读数字。如果您有任何建议,我将不胜感激:)您可以在不使用解析器的情况下: int n; cin >> n; if (cin.good()) { // manage integer } else {

我有一个任务,我希望随机输入
chars
ints
。有没有办法让我明白接下来会发生什么,然后说
cin>>int
,或者
cin>>char
。我想用
istream操作符>
来做,因为他们告诉我们不要用解析器。准确地说,我希望输入前缀表达式。所以我不知道什么时候读算符,什么时候读数字。如果您有任何建议,我将不胜感激:)

您可以在不使用解析器的情况下:

int n;
cin >> n;

if (cin.good())
{
    // manage integer
}   
else
{
    char c;
    cin.clear();
    cin >> c;

    // manage character
}

你能举出一个例子来帮助我们了解确切的文件格式吗?我不知道您所说的输入是字符还是整数是什么意思。您所说的字符是指“不是数字”吗?(数字也是字符。)将其作为
std::string
读入并从中解析。@molbdnilo是的,这正是我的意思:D@Bathsheba前缀示例:
-*8 5+*20 4*+5 8 10
还有更多工作要做,以清理流状态等。可能是最好的方法,受人为的无解析约束。@πάνταῥεῖ 编辑,现在可以了吗?(谢谢你的评论;)是的,很好的解决方案,除了。事实上,这是一个钝的工具,失败的案例比你可以摇动棍子的要多。不要这样做/抄送@Bathsheba@LightnessRacesinOrbit我真的不明白什么时候
std::cin
可以到达文件的末尾