奇怪的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);
}
}
在上面的代码中,我不明白为什么在我输入x之后t的值被设置为0。你甚至可以打印并检查t是否被设置为0。我甚至在ideone上查过了。http://ideone.com/JeCbSv任何帮助吗?您的scanf
在op
中读取无效。op
是单个char
,因此您应该使用
scanf("%c",&op);
不scanf("%s",&op);
相关文章:
- 理解boost::asio-async_read在无需读取内容时的行为
- 模板-模板参数推导:三个不同的编译器三种不同的行为
- arr[-1]在c++中的奇怪行为
- 继承期间显示未知行为的子类
- 如何在c++中使用引用实现类似python的行为
- G锁定铸造到基础上会释放模拟行为
- 使用ios:ate写入到流会覆盖现有文件
- 在C++中对T*类型执行std::move的意外行为
- 被覆盖的函数不会反映在基类中,这是正常行为吗?
- 为什么同时覆盖全局新运算符和特定于类的运算符不是模棱两可的行为?
- 为什么销毁被放置 new 覆盖的对象不是未定义的行为?
- 覆盖方法并用shared_ptr调用它们的奇怪行为
- 许多小部件似乎对太空栏键按事件具有默认行为.我该如何覆盖它而不将每个小部件分类
- C++ 将重载和覆盖结合起来会导致奇怪的行为
- 暂时覆盖输出流行为
- 有没有一种方法可以覆盖括号的默认行为
- 覆盖默认的未处理异常行为
- 覆盖删除行为
- 如何在拖动窗口时覆盖默认的 linux Alt+鼠标行为
- 奇怪的c++行为.价值被覆盖