Форум программистов, компьютерный форум CyberForum.ru

Проблемы с бинарным файлом - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ const char и unsigned char http://www.cyberforum.ru/cpp-beginners/thread857238.html
Всем привет. Такое дело. Это даже проблемой не назовешь, но суть такая. Мне нужно записать const char в unsigned char через конструктор класса: class A { unsigned char* a; public: A(char a1) { a = new unsigned char ; a = a1; //нужно добиться чтобы это стало возможным
C++ Имеется 15 строк, найти строку с наибольшим количеством слов палиндромов Заранее напишу полное задание: Вводится последовательно 15 строк. В каждой строке убрать избыточные пробелы, проверить синхронность скобок, найти строку с самым большим количеством слов палиндромов. Больше всего меня волнуют слова палиндромы, с остальным надеюсь разобраться сам. Подскажите пожалуйста как решить ту часть, где нам требуется найти строку с самым большим количеством слов... http://www.cyberforum.ru/cpp-beginners/thread857218.html
Из консоли в WinApi C++
Доброго времени суток всем. Есть код программы для консоли, нужно этот код использовать для WinApi приложении, но я не могу понять как это сделать. Помогите пожалуйста. Заранее спасибо.
Массив: Найти точку из этого множества, которая являлась бы центром окружности с минимальным радиусом. C++
Дано множество A из N точек с координатами (x,y). Найти точку из этого множества, которая являлась бы центром окружности с минимальным радиусом. Все точки множества должны находится внутри этой окружности. может кто помочь, или хотя бы показать что то подобное(как пример)
C++ Разработать класс индикатор времени, для которого устанавливается время, на протяжении которого он действует http://www.cyberforum.ru/cpp-beginners/thread857138.html
Вот. Разработать класс индикатор времени, для которого устанавливается время, на протяжении которого он действует. Все объекты этого класса должны в зависимости от желания пользователя синхронно показывать или время своего создания, или время, прошедшее со времени создания, или время, оставшееся до конца жизни индикатора. После прекращения времени действия индикатор окрашивает место, на котором...
C++ Написать программу используя классы, чтобы выводилось время class Time { int h,m,s; public: Time(int H, int M, int S); { if(H < 24 && M < 60 && S < 60) h = H, m = M, s = S; else подробнее

Показать сообщение отдельно
edw1n
 Аватар для edw1n
7 / 7 / 1
Регистрация: 12.11.2012
Сообщений: 114
06.05.2013, 13:15     Проблемы с бинарным файлом
Приветствую. Проблема заключается в следующем: не хочет открываться бинарный файл.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <stdio.h>
#include <iostream>
#include <string.h>
void CreateFile (const char*filename, int n)
     { FILE*fp;
       double x;
       fp=fopen(filename, "w+b");
       if (!fp)
          { puts ("File isn't opened");
            exit(1);
          }
       puts ("Enter the numbers");
       for (int i=0; i<n; i++)
           { scanf ("%lf", &x);
             fwrite (&x, sizeof(double),1,fp);
           }
       fclose(fp);
     }
     
void PrintFile (const char*filename, int n)
     { FILE*fp;
       double x;
       fp=fopen(filename, "r+b");
       if (!fp)
          { puts ("File isn't opened");
            exit(1);
          }
       for (int i=0; i<n; i++)
           { fread (&x, sizeof(double),1,fp);
             printf ("%lf ", x);
           }
       fclose(fp);
     }
 
int main (void)
    { FILE*fp;
      FILE*nfp;
      FILE*pfp;
      char filename[128];
      char nfilename[128];
      double x; int n;
      puts ("Enter filename");
      gets (filename);
      puts ("Enter n");
      scanf ("%d", &n);
      CreateFile (filename, n);
      PrintFile (filename, n);
      puts ("Enter filename for negative numbers");
      gets (nfilename);
      fp=fopen (filename, "r+b");
      if (!fp)
         { puts ("File isn't opened");
           exit (1);
         }
      nfp=fopen (nfilename, "w+b");
      if (!nfp)
         { puts ("File for negative numbers isn't opened");
           exit (1);
         }
system ("pause");
return 0;
}
В коде есть 2 функции - создания и печати файла. В главный файл я записываю double числа. В один нужно записать числа со знаком -, а во второй числа со знаком +. Я создал главный файл с числами, занёс в него эти числа, теперь хочу создать файл для чисел со знаком -, но он не хочет создаваться (срабатывает цикл if, в котором сказано "File for negative numbers isn't opened"). В чем проблема ?

Вот часть, которая отвечает за создание второго файла для негативных чисел. Что тут не так ? Теоретически - открытие файла с режимом чтения - это создание этого файла, почему срабатывает if не пойму.
C
1
2
3
4
5
6
      nfp=fopen (nfilename, "w+b");
      if (!nfp)
         { puts ("File for negative numbers isn't opened");
           exit (1);
         }
system ("pause");
Благодарю.

Добавлено через 31 минуту
Цитата Сообщение от edw1n Посмотреть сообщение
Теоретически - открытие файла с режимом записи - это создание этого файла, почему срабатывает if не пойму.
Извините, ошибку допустил. Там с режимом записи, то есть "w+b".
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru