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

Чтение структуры из файла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Из шестнадцатеричной в десятичную http://www.cyberforum.ru/cpp-beginners/thread677090.html
Здравствуйте! У меня есть фаил, с которого я считываю числа по 2 байта. В этих 2ух байтах содержится число в шестнадцатеричной системе, но мне нужно вывести его в десятичной. Подскажите пожалуйста как это сделать на C++
C++ Обратная польская запись (ОПЗ) на С++ Пожалуйста помогите!!!! не знаю что мне сделать с этими задачами=((((( A. Обратная польская запись (ОПЗ). Постфиксной формой записи (ОПЗ) выражения a◦b называется запись, в которой знак операции размещен за операндами ab◦. Например Обычная запись Обратная польская запись a-b a b - a*b+c a b * c + a*(b+c) a b c + * (a+c)/(c*a-d) a c + c a * d - / http://www.cyberforum.ru/cpp-beginners/thread677080.html
файл инициализации C++
подскажите как можно в программе записать функцию GetPrivateProfileInt нашел синтаксис UINT WINAPI GetPrivateProfileInt( _In_ LPCTSTR lpAppName, _In_ LPCTSTR lpKeyName, _In_ INT nDefault, _In_ LPCTSTR lpFileName ); но как его в програме записать чтоби откривало файл с:\test.ini и работало
C++ Поменять местами столбцы в динамическом массиве
Нужно переставить местами столбцы в динамическом массиве по ключу! У меня почему-то переставляет на правильно, не могу найти ошибку, прошу помощи! #include <stdafx.h> #include <iostream> #include <windows.h> using namespace std; const int n=256; int *key=new int;
C++ Написать перебор символов в строке и сортировку массива структур http://www.cyberforum.ru/cpp-beginners/thread677071.html
Задание: заполнить массив структур (по сути - таблицу) из файла или с клавиатуры и отсортировать (в порядке возрастания или убывания) их по 3 букве имени. Написал сортировку по 1 букве. Не доходит мне, как отсортировать по 3. Текст программы: #include <iostream> #include <iomanip> #include <conio.h> #include <stdio.h> #define N 2 using namespace std;
C++ Определить игру с максимальной разницей забитых и пропущенных мячей Условие задачи: дано N пар однозначных чисел. Первое число каждой пары означает количество мячей, забитых футбольной командой в игре, второе – количество пропущенных мячей в этой же игре. Определить игру с максимальной разницей забитых и пропущенных мячей. Буду премного благодарен. подробнее

Показать сообщение отдельно
иван_пропал
36 / 0 / 1
Регистрация: 05.10.2012
Сообщений: 110
22.10.2012, 18:48  [ТС]     Чтение структуры из файла
спасибо, почти работает но каждый раз после вывода на экран выводит ошибку:
Необработанное исключение типа "System.AccessViolationException" произошло в kurs_9.exe
Дополнительные сведения: Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена.

сам код программы:
Кликните здесь для просмотра всего текста

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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
// kurs_9.cpp: главный файл проекта.
 
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <atlstr.h>
 
 
#include <stdio.h>
#include <stdlib.h>
 
 
using namespace System;
using namespace std;
 
//**********
 
int t; // кол dvd дисков
 
struct dvd //структура dvd диска 
{
char namefilm[20];//название фильма
char namereg[20];// имя режисера
int prodol; // продолжительность в минутах
int cena; // цена
};
 
void addvd(dvd *p1) // добавление дисков
{   
    cout<<"Вводите только латиницей(английскими)\n";
    cout<<"Количество dvd дисков = "; 
    cin>>t;
    for(int i=0; i<t; i++)
 {  cout<<"\nназвание фильма: "; cin>>p1[i].namefilm;
    cout<<"\nимя режисера: "; cin>>p1[i].namereg;
    cout<<"\nпродолжительность в минутах: "; cin>>p1[i].prodol;
    cout<<"\nцена: "; cin>>p1[i].cena;
 }
 //запись в файл
 fstream f("f.dat", ios::app);
    for(int i=0; i<t; i++)
 {  f<<p1[i].namefilm<<" ";
    f<<p1[i].namereg<<" ";
    f<<p1[i].prodol<<" ";
    f<<p1[i].cena<<"\n ";
 
 }
 f.close();//закрытие потока
}
 
 
void print()//вывести на экран
{
    FILE *file = fopen("f.dat","rt");
char str[100];
while (!feof(file))
    {
        if (!fgets(str,100,file)) break;
        puts(str);
    }
fclose(file);
}
//*********
void poisk_cena(dvd *p1)
{
 
ifstream f("f.dat");
for(int i = 0; !f.eof(); i++)
{  
    f >> p1[i].namefilm; cout<<p1[i].namefilm<<" ";
    f >> p1[i].namereg; cout<<p1[i].namereg<<" ";
    f >> p1[i].prodol; cout<<p1[i].prodol<<" ";
    f >> p1[i].cena; cout<<p1[i].cena<<"\n";
}
f.close();
 
}
//*******  ГЛАВНАЯ ***************
int main()
{
    setlocale(LC_ALL,"Russian"); // подключение русского языка
    int k; // меню
    dvd *p1 = new dvd[];
 
 
    do{
    cout<<"1. Ввести данные\n";
    cout<<"2. Вывести данные\n";
    cout<<"3. Удалить с ценой выше чем...\n";
    cout<<"4. Добавить\n";
    cout<<"5. Выход\n";
    cin>>k;
    switch(k){
    case 1: addvd(p1); break;
    case 2: print(); break;
    case 3: poisk_cena(p1); break;
    case 4: cout<<""; break;
    }} while(k!=5);
 
    system("pause");
    return 0;
}
 
Текущее время: 23:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru