C中随机读写文件

2013-04-10 11:20:53 · 作者: · 浏览: 613

  #include <iostream>

  #include <cstdio>

  using namespace std;

  int main(int argc, char** argv) {

  FILE* fp = NULL;

  fp = fopen("data.txt", "w");

  fputs("gooooooooogle", fp);

  fclose(fp);

  fp = NULL;

  fp = fopen("data.txt", "r+");

  // 读取修改前的内容

  char str[50];

  cout << "------------修改前的内容---------" << endl;

  cout << fgets(str, 50, fp) << endl;

  // 随机修改文件.

  rewind(fp);

  fseek(fp, 3L, SEEK_SET);

  //cout << ftell(fp) << endl;

  fputc('A', fp);

  fputc('B', fp);

  fseek(fp, 1L, SEEK_CUR);

  fputc('C', fp);

  // 读出修改后的内容

  rewind(fp);

  cout << "------------修改后的内容---------" << endl;

  cout << fgets(str, 50, fp) << endl;

  fclose(fp);

  return 0;

  }

  /**

  * 不能用fopen(fileName, "w+"); // 如果文件不存在,创建文件,如果存在,则清空,然后读写

  * fopen(fileName, "a+"); // 只能写到文件尾,但可以读取.

  * fopen(fileName, "r+"); // 可以读写, 如果文件不存在, 则发生错误,可以实现随机读写.

  */