0 c++ ifstream ofstream gettickcount
我一直在创建一个空闲程序,以便在鼠标和键盘处于非活动状态时在几分钟内计算.这是我到目前为止:
using namespace std;
while(true)
{
GetLastInputInfo(&last_info);
tickCount = GetTickCount();
int minutes = (tickCount - last_info.dwTime) / 60000;
count++;
if((minutes >= 1) && (count%3000==0))
{
ifstream in("in.txt");
ofstream out("out.txt");
float sum;
in >> sum;
sum = sum++;
out << sum;
out << in.rdbuf();
out.close();
in.close();
}
std::cout << "Idle Time: " << minutes << " minutes." << std::endl;
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行它闲置一分钟时,"总和"表示它是1,然后我关闭程序并再次打开它一分钟,"总和"说它是2.我关闭程序并再打开一分钟它又回到了1.为什么会发生这种情况?
这一行是未定义的行为:
sum = sum++;
Run Code Online (Sandbox Code Playgroud)
您不能在序列点之间多次修改变量.你应该写这个来增加sum变量:
sum++;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
134 次 |
| 最近记录: |