Тема: Дивна помилка

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
  FILE *fp;
  double d = 0,00;
  int i = 14540253;
  long l = 14540253L;

  if((fp=fopen("test", "wb+"))==NULL) {
    printf("Ошибка при открытии файла.\n");
    exit(1);
  }

  fwrite(&d, sizeof(double), 1, fp);
  fwrite(&i, sizeof(int), 1, fp);
  fwrite(&l, sizeof(long), 1, fp);

  rewind(fp);

  fread(&d, sizeof(double), 1, fp);
  fread(&i, sizeof(int), 1, fp);
  fread(&l, sizeof(long), 1, fp);

  printf("%f %d %ld", d, i, l);

  fclose(fp);

  return 0;
}

Стр.7    Ошибка   1    error C2059: синтаксическая ошибка: константа    d:\rozbir\file\filez\filez\filez.cpp    7    1    FileZ


Дивиться! Що це??  Що це таке, а?  Я взагалі не розумію.. 

Тобто double d = 0,00;

2

Re: Дивна помилка

Мови програмування як правило придумують англосакси, а в них дробову частину принято виділяти крапкою, а не комою.

Подякували: Дмитро-Чебурашка, koala2

Re: Дивна помилка

А, все

Re: Дивна помилка

При роботі програми все ж виходить не зовсім такий результат, вона виводить на консоль
- 572662307

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main(void)
{
  FILE *fp;
  double d = 0.00;
  int i = 3722304989;
  long l = 3722304989L;
  const char dum[12]  ="Krokozjabra" ; 
  char bam[12];

  if((fp=fopen("test", "wb+"))==NULL) {
    printf("Ошибка при открытии файла.\n");
    exit(1);
  }

  fwrite(&d, sizeof(double), 1, fp);
  fwrite(&i, sizeof(int), 1, fp);
  fwrite(&l, sizeof(long), 1, fp);
  fwrite(&dum, sizeof(char), 12, fp);

  rewind(fp);

  fread(&d, sizeof(double), 1, fp);
  fread(&i, sizeof(int), 1, fp);
  fread(&l, sizeof(long), 1, fp);
  fread(&bam, sizeof(char), 12, fp);

  printf("%f %d %ld %s", d, i, l, bam);

  fclose(fp);

  _getch();


  return 0;
}

Re: Дивна помилка

Тобто 0.0000000   - 572662307  - 572662307  Krokozjabra

6 Востаннє редагувалося koala (27.05.2015 16:40:14)

Re: Дивна помилка

А ви гляньте в довідці свого компілятора, яке максимальне значення для int і для long.

Подякували: Дмитро-Чебурашка1

7 Востаннє редагувалося Дмитро-Чебурашка (27.05.2015 17:21:43)

Re: Дивна помилка

2147483647 : -2147483648

8

Re: Дивна помилка

А ви намагаєтеся запхати в них 3722304989 > 2147483647. Результат цілком передбачуваний: відбувається переповнення, і виходить 3722304989 - 4294967296 = -572662307.