Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 28.04.2017
Сообщений: 14
1

Программный код написан без ошибок но программу брикает

05.05.2017, 18:13. Показов 452. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
вот сам код
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include<iostream>
#include<fstream>
#include<string>
#include<iomanip>
using namespace std;
 
struct film
{
 
    string namefilm;
    string rezh;
    int p;
    double cen;
};
bool filetofilebin(char name1[], char name2[],double ykc)
{
    ifstream f1(name1);
    if(!f1){
        cout<<"Нет исходного файла"<<endl;
        system ("pause");
        return false;
    }
    ofstream f2(name2,ios::binary);
    
    film  b;
    
    while (f1.read((char*)&b,sizeof(b)));
    {
        
        string p=b.namefilm;
 
        if(p == "") 
            f1.read((char*)&b.namefilm,sizeof(b.namefilm));
    f1.read((char*)&b.rezh,sizeof(b.rezh))
        ;
        f1>>b.p>>b.cen;
        if(b.cen<ykc)
            f2.write((char*)&b,sizeof(b));
    }
    f1.close();
    f2.close();
    return 1;
}
 
void Displaybin(char name2[])
{
    ifstream f2(name2,ios::binary|ios::in);
    if(!f2)
    {
        cout<<"ERROR.";
        system("pause");
    }
    film ftb;
    cout<<"фильм"<<setw(20)<<""<<setw(20)<<""<<setw(10)<<""<<endl;
    
    while (f2.read((char*)&ftb.namefilm,sizeof(ftb.namefilm[50])))
    {
 
     if(ftb.namefilm == "")f2.read((char*)&ftb.namefilm,sizeof(ftb.namefilm[50]));
     f2.read((char*)&ftb.rezh,sizeof(ftb.rezh[30]));
        f2>>ftb.p>>ftb.cen;
        if(!f2.eof())
        {
    cout<<ftb.namefilm<<setw(20)<<ftb.rezh<<setw(20)<<ftb.p<<setw(10)<<ftb.cen<<endl;
}
    }
    f2.close();
}
 
int main()
{
    setlocale (0,"");
    char name1[]="f1.txt";
    char name2[]="f2.bin";
    double ykc;
    cout<<"Введите цену фильма"<<endl;
    cin>>ykc;
    filetofilebin(name1,name2,ykc);
    Displaybin(name2);
    system ("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.05.2017, 18:13
Ответы с готовыми решениями:

Изменить программу чтобы программный код выполнялся в отдельных функциях
Помогите изменить программу так, чтобы программный код, выполняющий действия пунктов меню...

Как выгрузить программу без ошибок?
Раньше я просто закрывал программу 'крестиком' Потом, когда к проекту добавились некоторые...

Как изменить программный код (сделать программу быстрее, убрать цикл For To Next )?
Как изменить программный код (сделать программу быстрее, убрать цикл For To Next )? Public Sub...

Cygwin скомпилировал программу без ошибок, но потом не запускает
Всем привет! Самостоятельно начал учить язык C. Еще только в начале пути, но уже столкнулся с...

3
шКодер самоучка
2227 / 1921 / 927
Регистрация: 09.10.2013
Сообщений: 4,262
Записей в блоге: 7
05.05.2017, 18:33 2

Не по теме:

Цитата Сообщение от ringer Посмотреть сообщение
Программный код написан без ошибок
если код компилируется, это не означает что в нем нет ошибок.


для начала:
Цитата Сообщение от ringer Посмотреть сообщение
ifstream f1(name1);
Цитата Сообщение от ringer Посмотреть сообщение
while (f1.read((char*)&b,sizeof(b)));
файл открыт в "текстовом" режиме, а читается как двоичный.
чуть далее он же читается как текстовый
Цитата Сообщение от ringer Посмотреть сообщение
f1>>b.p>>b.cen;
далее.
Цитата Сообщение от ringer Посмотреть сообщение
struct film
{
string namefilm;
* * string rezh;
* * int p;
* * double cen;
};
Цитата Сообщение от ringer Посмотреть сообщение
film *b;
while (f1.read((char*)&b,sizeof(b)));
структура film не является POD(простым) типом, так как содержит поля класса std::string(который является оберткой над указателем => работает с памятью), а следовательно ее нельзя считать/записать из файла одним куском - нужно читать-писать поэлементно.

дальше не смотрел...
0
0 / 0 / 0
Регистрация: 28.04.2017
Сообщений: 14
05.05.2017, 21:13  [ТС] 3
необходимо считать из текстового в бинарный, и вывести на экран информацию бинарного файла по условию что мы вводим цену по ней выводится информация
0
nd2
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
06.05.2017, 01:16 4
Цитата Сообщение от ringer Посмотреть сообщение
необходимо считать из текстового в бинарный, и вывести на экран информацию бинарного файла по условию что мы вводим цену по ней выводится информация
И? Читай 2-й пост.
0
06.05.2017, 01:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.05.2017, 01:16
Помогаю со студенческими работами здесь

Office.Interop.Word: Comments.Add. Код отработал без ошибок, но комментарий не появился
for (int i = 1; i &lt; doc.Paragraphs.Count; i++) { int kkk =...

Написать программу без ошибок. Что она вообще делает
#include &lt;stdio.h&gt; int f(int n) { if(n==0) { return(o); } else (n==1)&amp;(n=2) { return 1;...

7.7 программный отлов ошибок
Доброго времени суток. Кто-нибудь знает, есть ли способ программного отлова ошибок модуля?...

Код написан в Dev C. Не работает в Visual. Как нужно переделать код?
Здравствуйте. Столкнулась с такой проблемой: код был написан в Dev C, но в Visual он выдаёт...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru