![](/img/trans.png)
[英]C++ character concatenation with std::string behavior. Please explain this
[英]Strange C++ behavior. Value gets overriden
#include <iostream>
#include <stdio.h>
using namespace std;
int main(){
int t;
scanf("%d",&t);
while(t--){
long long int val;
char op;
scanf("%lld",&val);
while(true){
long long int x;
scanf("%s",&op);
if(op=='=')break;
scanf("%lld",&x);
cout<<"***"<<t<<endl;
if(op=='+')val+=x;
else if(op=='-')val-=x;
else if(op=='*')val*=x;
else val/=x;
}
printf("%lld",val);
}
}
is getting set to 0 after I am taking input in x. 在上面的代码中,我无法理解为什么我在x中输入后将的值设置为0。 您甚至可以打印并检查t是否设置为零。 我什至在ideone上检查过它。 http://ideone.com/JeCbSv有帮助吗?
您读入op
scanf
无效。 op
是一个char
,因此您应该阅读
scanf("%c",&op);
不
scanf("%s",&op);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.