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

Структуры. Бинарник отображается в консоли некорректно. Исправить код - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка при запуске программы "vector iterator not incrementable" http://www.cyberforum.ru/cpp-beginners/thread1070174.html
при запуске программы (без разницы какой функции) вылетает ошибка (заг. темы) как это исправить? мне кажется, что проблема в том, что я создаю класс (внутри функции) с неизвестным размером. #include "stdafx.h" #include <iostream> #include <vector>
C++ Произведение матриц, выход за границу массива #include <iostream> #include <stdlib.h> #include <time.h> #include <cmath> #include <math.h> using namespace std; void tselyi1(int **mas, int const n,int const m); void tselyi2(int **mas, int const n,int const m); http://www.cyberforum.ru/cpp-beginners/thread1070156.html
C++ GTKMM tutorial туториал
решил добавить этот туториал по GTKMM 3.0** так как качественных туториалов очень мало по этому GUI*. *-если вас задолбало консольное окно и хотите создать графическое приложени, (первую нормальную программу) то вам надо выбрать Graphic User Interface для него, один из которых и есть GTKMM . **-для тех кто незнает вкратце GTKMM это GTK+ написаный на C++ следовательно для тех новичков...
C++ Массив структур. Структура «Читатель»
поомогите ктонить. Структура «Читатель»: Фамилия И.О., номер читательского билета, название книги, срок возврата. Вывести читателей, название книги у которых начинаются с буквы ‘Л’. кто нибуть может объяснить как вывести этих читателей книги у каторых книги называются с буквы "Л" vs2010 #include "stdafx.h" #include<stdio.h> #include<conio.h> #include <iostream> using namespace std;
C++ Рекурсивно найти n-ую производную для заданого x. Результат похож на шестнадцатеричный код http://www.cyberforum.ru/cpp-beginners/thread1070103.html
Задание:рекурсивно найти n-ую производную f(x)={e}^{(a{x}^{2}+bx+c)} для заданого x,построив для {f}^{(n)}(x) рекурентное соотношение. Получилась такая рекуррентная формула для n-ой производной: {f}^{(n)}(x)=2(n-1)a{f}^{(n-2)}+(2ax+b){f}^{(n-1)} Думаю,код и без комментариев вы поймёте #include <iostream> #include <conio.h> #include <math.h> using namespace std; int n,x,a,b,c; double...
C++ Составить главную программу и функцию. Для данного вектора А(М) найти количество неповторяющихся элементов вектора Здравствуйте. Буду очень благодарен,если кто нибудь напишет два кода к этим задачам. Спасибо за внимание. Задача 1. Составить главную программу и функцию. Для данного вектора А(М) найти количество неповторяющихся элементов вектора. Задача 2. Дана матрица размерностью N*M. Найти сумму максимальных элементов в строках матрицы. подробнее

Показать сообщение отдельно
ZorikPunk
0 / 0 / 0
Регистрация: 23.12.2013
Сообщений: 15

Структуры. Бинарник отображается в консоли некорректно. Исправить код - C++

13.01.2014, 14:29. Просмотров 178. Ответов 0
Метки (Все метки)

Есть код программы. Объясните пожалуйста, почему, когда я заполняю бинарник на char name[255];, а потом меняю [255], на другие числа, вроде [100] или [240], бинарник отображается в консоли некорректно? И почему при [254] или [256] работает?
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
#include <tchar.h>
 
struct toy {
    char name[255];
    float price;
    int inclower;
    int incupper;
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
    // Переменная для выбора пункта меню
    int checkMenu;
 
    do {
        // Очистка экрана
        system("cls");
 
        // Вывод меню на экран
        // 1. Добавить данные об игрушке в файл
        printf("***  1  *** Добавить игрушки в файл\n");
        // 2. Вывести данные обо всех игрушках из файла
        printf("***  2  *** Вывести все игрушки из файла\n");
        // 3. Список игрушек по заданной стоимости и возрасту ребенка
        printf("***  3  *** Искать игрушки\n");
        // 4. Выход
        printf("\n***  4  *** Выход");
 
        // Ожидания ввода с клавиатуры пункта меню
        printf ("\n\nВыберите пункт меню: ");
        scanf("%d", &checkMenu);
 
        FILE *in, *out;
        toy curr_toy;
 
        switch (checkMenu) {
        // Если выбран пункт меню 1
        case 1:
            system("cls");
            int add;
            do {
                //toy curr_toy;
                // Введите название игрушки
                printf("Введите имя игрушки: ");
                scanf("%s", curr_toy.name);
 
                // Введите стоимость игрушки
                // Цикл do {} while реализован для проверки цены, чтобы она не была отрицательной
                do {
                    printf("Введите цену игрушки: ");
                    scanf("%f", &curr_toy.price);
                } while (curr_toy.price < 0);
 
                // Ввод верхней и нижней возрастной границы
                // В цикле do { } while реализована проверка чтобы возрастная нижняя граница была меьше верхней возрастной и была неотрицательной
                do {
                    printf("Введите минимальный возраст: ");
                    scanf("%d", &curr_toy.inclower);
 
                    printf("Введите максимальный возраст: ");
                    scanf("%d", &curr_toy.incupper);
                } while( !((curr_toy.inclower >= 0) && (curr_toy.inclower < curr_toy.incupper)) );
 
                // Записываем структурную переменную в файл "toys.bin"
                in = fopen("toys.bin","ab+");
                fwrite(&curr_toy, sizeof(curr_toy), 1, in);
                fclose(in);
                
                printf("\nДобавить еще? (0 - Нет, 1 - Да) : ");
                scanf("%d", &add);
            } while (add==1);
 
            break;
 
        // Если выбран пункт меню 2
        case 2:
            // Очистка экрана
            system("cls");
            // Вывод на экран шапки таблицы
            printf("+-----------------------------+----------------+-----------+------------+\n");
            printf("|            Название         |      Цена      |Минимальный|Максимальный|\n");
            printf("+-----------------------------+----------------+-----------+------------+\n");
 
            //toy curr_toy;
            // Открываем файл для чтения
            out = fopen("toys.bin","rb+");          
            while(!feof(out)) {
                fread(&curr_toy, sizeof(curr_toy), 1, out);
                // Вывод на экран всех игрушек
                printf ("|  %24s   |    %8.2f    |  %7d  |  %7d   |\n", curr_toy.name, curr_toy.price, curr_toy.inclower, curr_toy.incupper);
            };
            // Закрываем файловую переменную и таблицу
            fclose(out);
            printf("+-----------------------------+----------------+-----------+------------+\n");
 
            printf ("\n\nЖмякни кнопку");
            getch();
            break;
 
        // Если выбран пункт меню 3
        case 3:
            // Очистка экрана
            system("cls");
            // Ввод с клавиатуры заданной цены
            float disPrice;
            printf("Введите сумму денег, на которую расчитываете купить игрушку: ");
            scanf("%f", &disPrice);
            // Ввод с клавиатуры возраст ребенка
            int ageKid;
            printf("Введите возраст ребенка: ");
            scanf("%d", &ageKid);
            // Вывод шапки таблицы
            printf("+-----------------------------+----------------+-----------+------------+\n");
            printf("|            Название         |      Цена      |Минимальный|Максимальный|\n");
            printf("+-----------------------------+----------------+-----------+------------+\n");
 
            //toy curr_toy;
            // Открываем файл для чтения
            out = fopen("toys.bin","rb+");          
            while(!feof(out)) {
                fread(&curr_toy, sizeof(curr_toy), 1, out);
                // Выбераем для вывода на экран только те значения которые ниже заданной стоимости и подходят по возрасту ребенка
                if ((curr_toy.price <= disPrice) && (ageKid >= curr_toy.inclower) && (ageKid <= curr_toy.incupper)) {
                    printf ("|  %24s   |    %8.2f    |  %7d  |  %7d   |\n", curr_toy.name, curr_toy.price, curr_toy.inclower, curr_toy.incupper);
                }
            };
            // Закрытие файловой переменной и таблицы
            fclose(out);
            printf("+-----------------------------+----------------+-----------+------------+\n");
 
            printf ("\n\nЖмякни кнопку");
            getch();
            break;
 
        // Если выбран выход, то ничего не делаем и выходим из цикла
        case 4:
            break;
 
        default:
            // В случае неправильного ввода пункта меню, выдается сообщение
            printf("\nНеверный пункт меню!");
            break;
        }
 
    } while (checkMenu != 4);
 
    printf ("\n\nЖмякни кнопу");
    getch();
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru