用C覆盖文本文件

时间:2016-02-14 23:02:08

标签: c file printf overwrite fclose

我想从这开始,这是我的第一篇文章,我不是将其作为家庭作业,而是自我介绍用C语言写作。

我试图用我的for循环不断覆盖文件,但数字中途开始变得疯狂。

这是输出:

y = 19530

y = 3906

y = 78119530

y = 15623906

y = -1054493078

任何人都可以提供一个解释,为什么在循环的第3次迭代中,它跳转到78119530?

import React from 'react';
import Tabs from 'material-ui/lib/tabs/tabs';
import Tab from 'material-ui/lib/tabs/tab';

const Main = () => (
  <div>
    <Tabs>
      <Tab label="Item One" >
        <div>
          <h2 >Tab One</h2>
          <p>
            This is an example tab.
          </p>
          <p>
            You can put any sort of HTML or react component in here.
            It even keeps the component state!
          </p>
        </div>
      </Tab>
      <Tab label="Item Two" >
        <div>
          <h2 >Tab Two</h2>
          <p>
            This is another example tab.
          </p>
        </div>
      </Tab>
      <Tab label="onActive" >
        <div>
          <h2>Tab Three</h2>
          <p>
            This is a third example tab.
          </p>
        </div>
      </Tab>
    </Tabs>
  </div>
);

ReactDOM.render((
  <Main />
), document.getElementById('app'));

1 个答案:

答案 0 :(得分:4)

您正在泄露文件流。以下行不正确:

fclose(fopen("BUFF.txt", "w+"));

您在此处执行的操作是再次打开文件,然后关闭流,使旧流(保留在buff中)有效。

你想要这个:

fclose(buff);
buff = fopen("BUFF.txt", "w+");

或者这个:

freopen("BUFF.txt", "w+", buff);