繁体   English   中英

奇怪的C ++行为。 值被覆盖

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM