我尝试编写一个函数,将表达式切成标记,如下所示。
while(true)
{
cin >> d_tmp;
if(!cin){
cin.clear();
cin >> ch_tmp;
cout << ch_tmp << endl;
}
else
{
cout << d_tmp << endl;
}
}
但是,该功能没有按我的预期工作。当我输入一个随机数和字符序列时它工作正常当我输入“a 3 b”时返回“a”“3”和“b”,但是当我输入“3 + 4”时,所有返回都是“3” '和'4'。
我已经使用以下代码尝试了几个测试用例。看来如果我想让程序打印'3''+''4',我必须输入“3 ++ 4”。这完全让我感到困惑。有人对此有任何想法吗???谢谢!