Athletico 2020-06-09 15:57 采纳率: 72.7%
浏览 177
已采纳

各位大佬帮看看我的问题呗,谢谢啦

问题是这样的:

我在一个函数中定义了一个静态局部变量:static int x=0;

然后对x的操作是:x++;

然后我利用对二进制文件的操作:

fstream iofile ("D:x的值",ios::in | ios::out | ios::binary);

iofile.write( (char*)&x,sizeof(x));

这样就把x的值存放在磁盘文件里了。

问题:在第一次运行程序后很明显可知x的值为1,若第一次运行完之后,我关闭程序之后,再次打开此程序,在x++之前通过操作:iofile.read( (char*)&x,sizeof(x));
得到x的值,此时x的值为 1 还是 0 呢?

由于我还不知道结果,我还想问问如果是0的话怎么样才能让 x 在第二次运行程序时为 1 呢?
这是我的大学计算机基础作业的一个关键点,想了好久没想出来,各位大佬帮看看吧,万分感谢!

  • 写回答

2条回答 默认 最新

  • threenewbee 2020-06-09 16:32
    关注

    每次程序运行,变量都是重新来过的。
    static int x=0;
    此时是0
    x++是1
    然后读取
    iofile.read( (char*)&x,sizeof(x));
    那么文件里的x是多少,就是多少

    如果你希望每次都累加1,那么可以读取后,再++再write

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?