С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Union - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задача по массивам http://www.cyberforum.ru/cpp-beginners/thread997656.html
Помогите пожалуйста с задачей на с++ Количество студентов N=40. Имена студентов-символьный массив Nam. Каждый элемент-буква,код которой генерируется в диапазоне 65<=Nam<75.Каждый студент имеет...
C++ Преобразование строки в переменные Здравствуйте! Хочу получить от вас небольшую помощь.. Имеется текстовый файл, в котором записаны через пробел 5 чисел, для примера : 19 21 12 0 5.. Имеется код, для считывания всей строки с... http://www.cyberforum.ru/cpp-beginners/thread997654.html
C++ Удаление файла записи
Подскажите пожалуйста функцию удаления файла .txt
Запись строк в файл C++
#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <conio.h> #include <stdlib.h> #include <string.h> #define size 50 FILE *fl; struct lib{ char aut;
C++ создать файл использую string в ofstream http://www.cyberforum.ru/cpp-beginners/thread997615.html
хочу сделать ввод имени создаваемого файла с клавы, нельзя так? только char? string namefile; cin>>namefile; namefile.append(".txt\0"); cout<<namefile; ofstream ofs(namefile);
C++ Каноническая система Поста Каноническая система Поста. Обращаюсь к вам, всем всем, в связи того, что самостоятельно не идет понимание данной темы. Пример: 1)Знаки: | 2)Переменные: x 3)Схемы: x/x|| Эта каноническая... подробнее

Показать сообщение отдельно
NikitaQ
5 / 5 / 1
Регистрация: 10.09.2013
Сообщений: 51

Union - C++

04.11.2013, 17:21. Просмотров 758. Ответов 2
Метки (Все метки)

Здравствуйте! Я уже задавал тут вопрос, как использовать union, и сейчас столкнулся с проблемой:
Есть 3 файла и заголовочный файл - Struct.h Дальше довольно много текста, но, плиз, помогите кто-нибудь=)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const int MaxFigures = 12;
 
struct Point {
    double X;    // Координата X точки
    double Y;    // Координата Y точки
} Points;
 
union Figure {
    struct Rectangle {
        Point UpperLeft;    // Координаты верхнего левого угла
        Point LowerRight;   // Координаты нижнего правого угла
    } Rectangles;
    
    struct Circle {
        Point Center;    // Координаты центра
        double radius;   // Радиус
    } Circles;
} q;
 
Figure Figures[MaxFigures];
main.cpp
C++
1
2
3
4
5
6
7
int LoadFigures();
int main() {
 
    int numFigures = 0;
    
    numFigures = LoadFigures(); // Считываем все фигуры
}
LoadFigures.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
 
void CreateFigure (char, int);
 
int LoadFigures() {
    char id;
    int numFigures = 0;
    
    while (1) {
        cin >> id;
        if(id == '*')
            break;
        
        numFigures++;
        
        CreateFigure(id, numFigures); // Инициализация структуры
    }
    return numFigures;
}
CreateFigures.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "Struct.h"
#include <iostream>
using namespace std;
 
void CreateFigure (char id, int i) {
    if (id == 'c') {
        cin >> Figures[i].Circles.Center.X >> Figures[i].Circles.Center.Y >> Figures[i].Circles.radius;
    }
   
    if (id == 'r') {
        cin >>  Figures[i].Rectangles.UpperLeft.X >> Figures[i].Rectangles.UpperLeft.Y >> Figures[i].Rectangles.LowerRight.X >> Figures[i].Rectangles.LowerRight.Y;
    }
    
    // Debugging
    cout << id << i << " Center.X " << Figures[i].Circles.Center.X << "| Center.Y " << Figures[i].Circles.Center.Y << "| radius " << Figures[i].Circles.radius << endl;
    
    cout << id << i << " UpperLeft.X " << Figures[i].Rectangles.UpperLeft.X << "| UpperLeft.Y " << Figures[i].Rectangles.UpperLeft.Y << "|  LowerRight.X " << Figures[i].Rectangles.LowerRight.X << "| LowerRight.Y " << Figures[i].Rectangles.LowerRight.Y << endl;   
}
Так вот, если дать строку
r 8.5 17.0 25.5 -8.5
*
То он выведет
r1 Center.X 8.5| Center.Y 17| radius 25.5
r1 UpperLeft.X 8.5| UpperLeft.Y 17| LowerRight.X 25.5| LowerRight.Y -8.5

Каак? Как он обходит условия if? И как исправить?

Должен вывести только вторую строку, естественно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.