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

Чтение из бинарного файла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ посчитать макс и мин элемент массива ,сумма между 1-ым и 2-ым положит элементом и упорядочить по определённому принципу http://www.cyberforum.ru/cpp-beginners/thread894099.html
В одномерном массиве состоящем из n вещественных элементов вычислить :1)минимальный и максимальный по модулю элемент массива;2)сумма элеентов,расположенных между первым и вторым положительным элементов.преобразовать массив так,чтобы в первой его половине располагались элементы,состоящие в нечётных позициях,а во второй половине - элементы,состоящие в чётных позициях Сегодня последний день сдачи,...
C++ Работа цикла типа while. Найти ошибку в коде Добрый день. Ребята, помогите, пожалуйста. Не могу понять, что не так. В итоге результат выходит: "Vashe chislo = 0". Само задание в комментарии в коде. Спасибо! // Решения задачи методом подбора. Какое число нужно умножить на 17, // чтобы получить число в интервале . #include <stdio.h> #include <iostream> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread894098.html
Дата в текст , не могу доделать C++
Дали тему курсового...преобразование каленарных дат различных форматов в текст ..тоесть нужно чтоб и число,и месяц,и год были записаны словами... пока что разобрался только с месяцами. помогите с числами и годами пожалуйста#include <iostream> #include <iomanip> #include <conio.h> #include <string.h> #include <stdlib.h> #include <windows.h> using namespace std; void main( void ) {
C++ Выяснить, пройдет ли кирпич с ребрами a,b,c в прямоугольное отверстие со сторонами x и y.
Даны действительные числа a, b, c, x, y. Выяснить, пройдет ли кирпич с ребрами a,b,c в прямоугольное отверстие со сторонами x и y. Просовывать кирпич в отверстие разрешается только так, чтобы каждое из его ребер было параллельно или перпендикулярно каждой из сторон отверстия. Добавлено через 12 минут не знаю как её написать в C++ напишите нужно очень
C++ True или False http://www.cyberforum.ru/cpp-beginners/thread894089.html
Дорогие, форумчаны! Помогите, пожалуйста, написать программу. Написать программу, которая печатает True или False в зависимости от того, выполняются или нет заданные условия: - квадрат заданного трехзначного числа равен кубу суммы цифр этого числа; - сумма двух первых цифр заданного четырехзначного числа равна сумме двух его последних цифр; - среди цифр заданного трехзначного числа есть...
C++ Нужна блок-схема ! двухмерный массив Помогите с блок-схемой !! Двухмерный массив:help: #include <iostream> #include <stdlib.h> #include <time.h> #include <math.h> #include <conio.h> using namespace std; подробнее

Показать сообщение отдельно
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.06.2013, 22:00     Чтение из бинарного файла
Зачем вам три глобальных массива структур:
C++
1
not[3], n[3], y[3];
и три в main() с теми же именами:
C++
1
NOTEBOOK not[X], n[X], y[X];
Добавлено через 1 минуту
C++
1
2
writ.close();
writ.clear();
После close и так будет clear.

Добавлено через 12 минут
Зачем делать в структуре (или в файле) другой порядок следования полей? Чтобы потом путаться?

Добавлено через 14 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
...
switch (select)
        {
        case 1:         
            vsego = 0; // !!!
            
            for ( int i=0; i<X; i++ )
            {
                if ( not[i].massa < 7 )
                {
                    vsego++;
                }
            }
...
Добавлено через 32 минуты
Функцию чтения из текстового файла (после каждой строки в файле должен быть '\n') дописать:
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
NOTEBOOK inStruct (NOTEBOOK not[], int i )
{    // Функция чтения данных из файла в структуру
    char c;
    for ( int j = 0; j<19; j++ )
    {
        writ.get(c);
        not[i].model[j] = c;
    }
    not[i].model[19] = '\0';
    writ>>not[i].price;
    writ>>not[i].massa;
    writ>>not[i].ix;
    writ>>c;
    writ>>not[i].iy;
    writ>>c;
    writ>>not[i].is;
    writ>>not[i].mg;
    writ>>not[i].mb;
    writ>>not[i].d;
    writ>>not[i].sv;
    writ>>not[i].x;
    writ>>c;
    writ>>not[i].y;
    writ>>not[i].f;
    writ>>not[i].ggb;
    
    writ.get(); // !!!
    
    return not[i];
};
Иначе символ новой строки попадает в файл .dat, потом, при выводе строк после первой, виден. В выложенном текстовом файле добавить в конец последней строки - '\n' (хотя и так будет работать, но лучше, чтобы строки в тексте были одинакового формата).

Добавлено через 13 минут
Подгонять размер наименования под 19 символов - не хорошо. Лучше так сделать. Файл должен быть такого вида:
Acer Note Light
2699 5.6 02.0x11.8x08.3 100 40 10.4 1 1024x0768 60 0.774
ASW ND5123T
3489 6.9 02.3x11.8x10.1 133 32 12.1 2 1024x0768 70 1.300
ARMNote TS80CD
3699 7.5 02.0x11.5x08.8 133 64 11.3 1 1024x0768 75 1.300
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
...
const int N = 30; // максимальное количество символов в наименовании N - 1
...
char model[N]; //  наименование
...
NOTEBOOK inStruct (NOTEBOOK not[], int i )
{    // Функция чтения данных из файла в структуру
    
    char c;
    
    writ.getline(not[i].model, N);
    
    writ>>not[i].price;
    writ>>not[i].massa;
    writ>>not[i].ix;
    writ>>c;
    writ>>not[i].iy;
    writ>>c;
    writ>>not[i].is;
    writ>>not[i].mg;
    writ>>not[i].mb;
    writ>>not[i].d;
    writ>>not[i].sv;
    writ>>not[i].x;
    writ>>c;
    writ>>not[i].y;
    writ>>not[i].f;
    writ>>not[i].ggb;
    writ.get(); 
    
    return not[i];
}
...
 
Текущее время: 02:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru