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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Функция Цельсий и Фаренгейт http://www.cyberforum.ru/cpp-beginners/thread672103.html
Есть задача: Напишите следующие функции:  Функция celsius, которая возвращает температуру по Цельсию, эквивалентную температуре по Фаренгейту.  Функция fahrenheit, которая возвращает температуру по Фаренгейту, эквивалентную температуре по Цельсию. Вот код который я написал #include<stdio.h> #include<conio.h> #include <locale.h> float farengeit(float); float celsiy(float); int main()
C++ командное окно высвечивается и тут же исчезает после указания файла, командное окно высвечивается и тут же исчезает, как сделать чтоб оно не исчезло? вот код с комментариями: #include <iostream> const int inf = 1E9; const int MaxWeight = 100; using namespace std; //Вспомогательная функция, ищет и возвращает минимум из двух азаднных чисел int Min(int a, int b) { if (a > b) return b; http://www.cyberforum.ru/cpp-beginners/thread672087.html
C++ оператор ветвления
есть задание, надо найти пару значений (вводимых) которые в суме будут равны третему, я вроде бы написал програму ну она почему-то некоректно работает если я ввожу а=8, у=3 и z=5, оно выводит "а" и "у", я вроде смотрю но в упор невижу ошибку, полюбому какая-то мелоч, подскажите кто видет пожайлуста #include <stdio.h> void main() { int a,y,z; ...
C++ Воспроизводится только тот код, который был до текущего
Ребят, слушайте, у меня тут одна проблема. Я случайно дал команду Студие, чтобы она запускала последний успешно-скомпилированный код, и теперь вне зависимости того, какой код я компилирую, производится только тот код, который был до этого. Как исправить эту проблему??
C++ Лексический анализ строки. Помочь переделать под автомат http://www.cyberforum.ru/cpp-beginners/thread672064.html
Добрый вечер! Помогите плиз написать лексический анализатор строки. Сделать автомат... используя матрицу переходов, некий двумерный массив. Условия для поиска подстрок: Нечетное кол-во 1 между 0 Четное кол-во 0 между 1 Две 11 подряд Написал (код ниже) как должно примерно выглядеть. Тупо прошелся по строке, выводя лексемы.
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 ;
Но также не вышло.
 
Текущее время: 12:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru