filebin.c 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /*
  2. Программа для считывания числового значения из файла (с сохранением его в числовом формате).
  3. Исходный файл является бинарным.
  4. */
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <string.h>
  8. #include <malloc.h>
  9. #include <sys/stat.h> //содержатся флаги режимов доступа к файлам (mode)
  10. #include <fcntl.h> //содержатся флаги открытия файлов (flags)
  11. double readfile(char *path)
  12. {
  13. FILE *fd = fopen(path, "rb"); // открываем файл для чтения бинарных файлов
  14. if (fd == NULL) // если не открылся выходим
  15. {
  16. printf("Не удалось открыть файл для чтения %s\n", path);
  17. exit(-1);
  18. }
  19. int size = 1000; // размер буфера
  20. double buf; // буфер
  21. int nr = fread(&buf, sizeof(double), 1, fd); // читаем в буфер
  22. if (nr == -1) // если не получилось прочитать
  23. {
  24. printf("Не удалось прочитать файл %s\n", path);
  25. exit(-1);
  26. }
  27. fclose(fd); // закрываем дискриптор
  28. return buf; // возвращаем строку
  29. }
  30. /*
  31. void writefile(char *path, double answer)
  32. {
  33. FILE *fd = fopen(path, "wb"); // открываем файл для записи бинарных файлов
  34. if (fd == NULL) // если не открылся выходим
  35. {
  36. printf("Не удалось открыть файл для записи %s\n", path);
  37. exit(-1);
  38. }
  39. int nw = fwrite(&answer, sizeof(double), 1, fd); // пишем
  40. if (nw == -1) // если не получилось записать
  41. {
  42. printf("Не удалось записать в файл %s\n", path);
  43. exit(-1);
  44. }
  45. fclose(fd); // закрываем дискриптор
  46. }
  47. */
  48. int main()
  49. {
  50. char *path = "./file.bin";
  51. //writefile(path, 121); // пишем письмо
  52. double letter = readfile(path); // читаем
  53. printf("%f\n", letter);
  54. printf("\nесли вы дошли до сюда, то все гуд\n");
  55. }