1. 程式人生 > >C語言檔案寫入結構體的亂碼解決方法

C語言檔案寫入結構體的亂碼解決方法


int main ()
{
  FILE * pFile;
  FILE * temp;

  double xvalue, yvalue;
  struct punto{
        float x;
        float y;
    } pto;
  xvalue = 1;
  temp = fopen("temp.aux", "w+");
  int i;
  for(i = 0; i < 10; i++){
    pto.x = i;
    pto.y = 0;
    fwrite(&pto, sizeof(pto), 1, temp);
  }

  pFile = fopen ("myfile.txt", "w+");
  rewind(temp);
  fread(&pto, sizeof(pto), 1, temp);
  while(!feof(temp)){
    //pto.x = xvalue;
    pto.y = rand()%100;
    fprintf(stdout, "%f %f\n", pto.x, pto.y);
    fprintf(pFile, "%f %f\n", pto.x, pto.y);
    fseek(temp, -sizeof(pto), SEEK_CUR);
    fwrite(&pto, sizeof(pto), 1, temp);
    fread(&pto, sizeof(pto), 1, temp);
    
    sleep(1);
  }
  fclose(temp);
  remove("temp.dat");
  fclose(pFile);
  return 0;
}