gpt4 book ai didi

c++ - 读取数学运算时 cin 无法正常运行

转载 作者:太空狗 更新时间:2023-10-29 21:46:08 27 4
gpt4 key购买 nike

我尝试编写一个函数,将表达式分割成标记,如下所示。

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”。这让我很困惑。有人对此有任何想法吗???谢谢!

最佳答案

您声明变量的类型是:

int d_tmp;
char ch_tmp;

输入3 + 4,执行如下:

  • cin >> d_tmp; 读取 3,读取空格,停止
  • if(!cin) 为假,转到 else,并打印 3
  • cin >> d_tmp;读取+,读取空格,错误
  • if(!cin) 为真
  • cin >> ch_tmp; 读取 4

输入流的数字解析器将 +12 视为一个数字,因此如果它看到它,它将消耗一个 +

关于c++ - 读取数学运算时 cin 无法正常运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15838233/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com