为什么我能';t在控制台输入中执行算术运算“;cin";? 我是C++初学者。我遇到了一些麻烦或疑问; 问题是,我在用户输入cin>中给出了一个算术运算,比如2+2。但作为回报,它给出了2的输出

为什么我能';t在控制台输入中执行算术运算“;cin";? 我是C++初学者。我遇到了一些麻烦或疑问; 问题是,我在用户输入cin>中给出了一个算术运算,比如2+2。但作为回报,它给出了2的输出,c++,C++,代码: #include "iostream" using namespace std; int main(){ int t; cin>>t; // Here I Have Given 2+2 cout<<t; // Instead of giving 4; It is giving me 2 return 0; } #包括“iostream” 使用名称空间std; int main(){ int t; cin>>t;/

代码:

#include "iostream"
using namespace std;
int main(){
    int t;
    cin>>t;      // Here I Have Given 2+2
    cout<<t;     // Instead of giving 4; It is giving me 2
    return 0;
}
#包括“iostream”
使用名称空间std;
int main(){
int t;
cin>>t;//这里我给出了2+2

不能将t声明为整数。 您在输入中给出“2+2”。这不是int,这是一个字符串,cin从输入中读取第一个整数

cin>>t;
cout<<t+t;
cin>>t;

可能您对输入输出功能的期望太高了。
cin>>t
只读取输入流中的第一个整数,解释留给代码的其余部分。这项任务比看起来要简单一些(考虑操作优先级和括号)。很抱歉让您失望,但cin是用于输入的,而不是用于计算。如果您想让您的程序求解用户写入输入的算术表达式,您需要让它解析它们,然后处理运算符和操作数。如果您真的想钻入这个兔子洞,您可以检查。
cin
不是通用表达式解析器-它的读数准确无误(在您的情况下为单个整数值)并在遇到无法读取的内容时停止。给定
2+2
,第一个值
2
将被读取到
t
,输入的
+2
将保留在输入流中,因此程序可以在设计时读取它。如果希望解析将
2+2
转换为
4
,则需要实现逻辑识别第一个值(
2
),识别操作(
++
),识别第二个值(
2
),然后将这三个值组合在一起生成
4
。有没有其他方法从用户输入中进行此类计算?你的意思是除了“实际对输入进行数学运算”之外不,C++不是通用计算器,但是你可以用C++编写。