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

Где можно прочитать про перевод структуры в массив - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Функция Цельсий и Фаренгейт http://www.cyberforum.ru/cpp-beginners/thread672103.html
Есть задача: Напишите следующие функции:  Функция celsius, которая возвращает температуру по Цельсию, эквивалентную температуре по Фаренгейту.  Функция fahrenheit, которая возвращает температуру...
C++ командное окно высвечивается и тут же исчезает после указания файла, командное окно высвечивается и тут же исчезает, как сделать чтоб оно не исчезло? вот код с комментариями: #include <iostream> const int inf = 1E9; const int MaxWeight = 100;... http://www.cyberforum.ru/cpp-beginners/thread672087.html
C++ оператор ветвления
есть задание, надо найти пару значений (вводимых) которые в суме будут равны третему, я вроде бы написал програму ну она почему-то некоректно работает если я ввожу а=8, у=3 и z=5, оно выводит "а" и...
C++ Воспроизводится только тот код, который был до текущего
Ребят, слушайте, у меня тут одна проблема. Я случайно дал команду Студие, чтобы она запускала последний успешно-скомпилированный код, и теперь вне зависимости того, какой код я компилирую,...
C++ Лексический анализ строки. Помочь переделать под автомат http://www.cyberforum.ru/cpp-beginners/thread672064.html
Добрый вечер! Помогите плиз написать лексический анализатор строки. Сделать автомат... используя матрицу переходов, некий двумерный массив. Условия для поиска подстрок: Нечетное кол-во 1 между...
C++ Что означает <int>? int **X = Create <int>(M, N); или, если можно, опишите что означает строка сверху подробнее

Показать сообщение отдельно
Bar1V1en
0 / 0 / 0
Регистрация: 11.05.2012
Сообщений: 9
30.10.2012, 17:04  [ТС]
Здравствуйте!
Помогите пожалуйста организовать проверку массива на пустой элемент.
Сам код.
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
#include <fstream> // библиотека для работы с файлами
#include <iostream> // библиотека для работы с потоками
 
using namespace std; // использование стандартных имён
 
struct SPIS // формирование структуры
{
int num; // номер книг
char avtor[13]; // авторы книг
char kto[16]; // предмет книг
float stoit; // стоимость книг
};
 
int main() //инициализация программы
{
    SPIS BOOK[10]; // объявление массива структуры
    float midle = 0;// идентификация новой переменной для подсчёта средней стоимости
    int n = 0;//идентификация новой переменной для нумерации
 
    fstream file; // открытие файла с данными
    file.open("Task4.in", ios::in); // указание имени файла
    fstream fileout;//открытие файла в который будем записывать данные
    fileout.open("Task4.out", ios::out);// указание имени файла
    if (!file) // проверка отсутствия файла
    {
        fileout << "Нет файла" << endl; // Проверка того, что начальный файл есть
        return 0;//возвращение значения
    }
 
    for (int i = 0; i < 10; i++)// забитие данных массива в подмассивы
    {
        file >> BOOK[i].num >> BOOK[i].avtor >> BOOK[i].kto >> BOOK[i].stoit;
    }
     file.close();// закрытие начального файла
 
    for (int i = 0; i < 10; i++)// цикл подсчёта средней стоимости одной книги
    {
        midle += BOOK[i].stoit;
        n ++;
    }
    midle /= n; // вычисляем среднюю стоимоть книг
 
    fileout << "Средняя стоимость книги = " << midle << endl;// запись данных в файл
    fileout.close();// закрытие конечного файла
 
    return 0;
}
Данные файла TASK4.IN
Кликните здесь для просмотра всего текста

01 Иванов Программирование 1.5
02 Сидоров История 2.6
03 Петров Архиваторы 3.7
04 Хрящев Философия 2.95
05 Геометрия 4.86
06 Хиндрик Алгебра 0.48
07 Ололоев 7.62
08 Сысоев начерталка 9.45
09 Тренькин Дифуры 4.36
10 Здоровяк Астрономия 2

Нужно написать проверку того, что все фамилии/предметы введены.
Вижу алгоритм этой проверки в следующем порядке:
Считывание массива -> проверка на отсутствие элементов -> вывод ошибки.
К сожалению так не получается, т.к. данные из файла считываются сплошняком, данные смещаются и получается белиберда. Пробовал реализовать это дело в такой форме:
C++
1
2
3
4
5
6
7
8
9
10
11
if (BOOK[i].num = 0)
            fileout << " Не введён номер книги № " << i ;
        file >> BOOK[i].num >> BOOK[i].avtor ;
        if (BOOK[i].avtor = 0)
            fileout << " Не введён автор книги №" << i ;
        file >> BOOK[i].num >> BOOK[i].avtor >> BOOK[i].kto ;
        if (BOOK[i].kto = " ")
            fileout << " Не введёно название книги №" << i ;
        file >> BOOK[i].num >> BOOK[i].avtor >> BOOK[i].kto >> BOOK[i].stoit;
        if (BOOK[i].stoit = 0)
            fileout << " Не введёна стоимость книги №" << i ;
Но также не вышло.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru