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

Работа со структурой - C++

Восстановить пароль Регистрация
 
mkth
0 / 0 / 0
Регистрация: 07.02.2010
Сообщений: 18
24.05.2011, 22:04     Работа со структурой #1
Приветствую Всех. Вот какая проблема у меня возникла... Есть структура вида
Bash
1
2
3
4
5
PC RAM 4096 HDD 750 SSD 120 FLASH 4 DVD-RAM 8
 
NOTEBOOK RAM 2048 HDD 500 SSD 80 FLASH 2 DVD-RAM 4
 
NETBOOK RAM 1024 HDD 250 SSD 40 FLASH 1 DVD-RAM 2
Я ее определяю так
C++
1
2
3
4
5
6
7
struct computer
{
    char PC [2];int PCValue;char HDD [3];int HDDValue;char SSD [3];int SSDValue;char FLASH[5];int FLASHValue;char DVDRAM[7];int DVDRAMValue;
    char NOTE [8];int NOTEValue;char HDD2 [3];int HDDValue2;char SSD2 [3];int SSDValue2;char FLASH2[5];int FLASHValue2;char DVDRAM2[7];int DVDRAMValue2;
    char NET [7];int NETValue;char HDD3 [3];int HDDValue3;char SSD3 [3];int SSDValue3;char FLASH3[5];int FLASHValue3;char DVDRAM3[7];int DVDRAMValue3;
 
} comp [30];
Вопрос, каким образом считать ее, чтобы можно было с ней дальше работать? Подскажите пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2011, 22:04     Работа со структурой
Посмотрите здесь:

C++ Работа с файлами и структурой
Работа со структурой C++
C++ Работа со структурой
Работа со структурой C++
C++ Работа со структурой
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ЛеЖиК)
 Аватар для ЛеЖиК)
157 / 60 / 1
Регистрация: 29.04.2011
Сообщений: 630
24.05.2011, 22:26     Работа со структурой #2
помоему (не знаю что ты хочешь делать)-это бред
я бы делал так:
C++
1
2
3
4
5
6
7
8
9
struct komp
{
char* NAME;
int RAM;
int HDD;
int SSG;
int FLASH;
int DVD-RAM;
}comp[20];
а дальше уже ее заполняешь:
C++
1
2
3
4
5
6
comp[0].NAME="PS";
comp[0].RAM=4096;
// .... и так далее
// ... потом
comp[1].NAME="NOTEBOOK";
comp[1].RAM=2048;
mkth
0 / 0 / 0
Регистрация: 07.02.2010
Сообщений: 18
24.05.2011, 23:12  [ТС]     Работа со структурой #3
Спасибо, я сам знаю, что это бред... Но, так звучит задание - считать структуру с файла, поработать с ней (запись, удаление,добавление, сортировка)... И, кстати, есть ли норм. альтернативы функциям gotoxy и очистка консоли в vc2010 c++?
fidzhi
5 / 5 / 1
Регистрация: 16.02.2011
Сообщений: 45
25.05.2011, 00:56     Работа со структурой #4
Цитата Сообщение от mkth Посмотреть сообщение
Спасибо, я сам знаю, что это бред... Но, так звучит задание - считать структуру с файла, поработать с ней (запись, удаление,добавление, сортировка)... И, кстати, есть ли норм. альтернативы функциям gotoxy и очистка консоли в vc2010 c++?
C++
1
2
3
4
5
6
7
void gotoxy( int col, int row ) {
   
   COORD pos;
   pos.X = col; pos.Y = row;
   SetConsoleCursorPosition( hOut, pos );
 
}
C
1
 и system("cls")
не предлагать?))
mkth
0 / 0 / 0
Регистрация: 07.02.2010
Сообщений: 18
25.05.2011, 04:33  [ТС]     Работа со структурой #5
C++
1
gotoxy( 1, 1 );
В борланд си++, а в висуал студио просто извращение какое то... Придется как то по другому выкручиваться, блин...

Добавлено через 1 час 11 минут
Вот как пока выкрутился из положения, но в коде реализовано не все (прмиер нашел тут на форуме)
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
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <fstream>
#include <ctime>
#include <iomanip>
#include "stdio.h"
#include "windows.h"
 
using namespace std;
 
int kolvozapis;
 
void sozd();
void vvod();
void sort();
void poisk();
void udalenie();
 
void SetColor(int text, int background)
{
   HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
   SetConsoleTextAttribute(hStdOut, (WORD)((background << 4) | text));
}
 
struct computer
{
    char NAME [8];int RAM;char HDD [3];int HDDValue;char SSD [3];int SSDValue;char FLASH[5];int FLASHValue;char DVDRAM[7];int DVDRAMValue;
 
} comp [20];
 
void main()
{
    setlocale (0,"");
 
char a;
 
    while( 1 )
    {
        cout << "\tГЛАВНОЕ МЕНЮ\n";
        cout << "1-Создать файл\n\r2-Добавить запись в файл\n\r3-Отсортировать записи\n\r4-Поиск\n\r5-Удаление\n\r6-Выход\n";
 
        cin >> a;
 
        switch( a )
        {
            case '1':
                sozd();
                break;
            case '2':
                vvod();
                break;
            /*case '3':
                sort();
                break;
            case '4':
                poisk();
                break;
            case '5':
                udalenie();
                break;*/
            case '6':
                exit(1);
        }
    }
}
 
void sozd()
{
    cout << "Создан файл - out.txt";
    cout << "\n\Введите количество записей, которые будут помещены в файл";
    cin >> kolvozapis;
    FILE *zap;
 
    zap = fopen( "Zap.txt", "w" );
    fprintf( zap, "%i", kolvozapis );
    fclose( zap );
 
    FILE *my;
    my = fopen( "out.txt", "w" );
    for( int i = 0; i < kolvozapis; i++ )
    {
        cout << "\n Введите тип ПК ";
        cin >> comp[i].NAME;
        cout << "\n Введите объем оперативной памяти ";
        cin >> comp[i].RAM;
        cout << "\n Введите объем жесткого диска ";
        cin >> comp[i].HDD;
        cout << "\n Введите объем быстрой твердотельной памяти ";
        cin >> comp[i].SSD;
        cout << "\n Введите объем флеш устройства ";
        cin >> comp[i].FLASH;
        cout << "\n Введите объем оптического диска в компьютере ";
        cin >> comp[i].DVDRAM;
        fwrite( &comp[i], sizeof( comp[i] ), 1, my );
        system ("cls");
    };
    fclose( my );
}
 
void vvod()
{
int n, i;
    cout << "\n\Введите количество добавляемых записей";
    cin >> n;
    FILE *my;
    my = fopen( "input.txt", "a" );
    for( i = 0; i < n; i++ )
    {
        cout << "\n Введите тип ПК ";
        cin >> comp[i].NAME;
        cout << "\n Введите объем оперативной памяти ";
        cin >> comp[i].RAM;
        cout << "\n Введите объем жесткого диска ";
        cin >> comp[i].HDD;
        cout << "\n Введите объем быстрой твердотельной памяти ";
        cin >> comp[i].SSD;
        cout << "\n Введите объем флеш устройства ";
        cin >> comp[i].FLASH;
        cout << "\n Введите объем оптического диска в компьютере ";
        cin >> comp[i].DVDRAM;
        fwrite( &comp[i], sizeof( comp[i] ), 1, my );
        system("cls");
    };
    fclose( my );
 
    FILE *zap;
    zap = fopen( "Zap.txt", "r+" );
    fscanf( zap, "%i", &kolvozapis );
    fclose( zap );
 
    zap = fopen("Zap.txt","w");
    kolvozapis = kolvozapis + n;
    fprintf( zap, "%i", kolvozapis );
    fclose( zap );
}
Вопрос у меня такого рода, как добавить к значениям собственно HDD, SSD, RAM сами эти слова, ну то есть, чтобы выводилось в виде
Bash
1
NOTEBOOK RAM 2048 HDD 500 SSD 80 FLASH 2 DVD-RAM 4
dampir_sanek
149 / 147 / 21
Регистрация: 09.02.2010
Сообщений: 407
25.05.2011, 04:44     Работа со структурой #6
Цитата Сообщение от mkth Посмотреть сообщение
Вопрос у меня такого рода, как добавить к значениям собственно HDD, SSD, RAM сами эти слова, ну то есть, чтобы выводилось в виде
Bash
1
NOTEBOOK RAM 2048 HDD 500 SSD 80 FLASH 2 DVD-RAM 4
C++
1
cout << comp[i].NAME << "RAM" << comp[i].RAM << "HDD" << comp[i].HDD << "SSD" << comp[i].SSD << "FLASH" << comp[i].FLASH << DVD-RAM << comp[i].DVD-RAM;
mkth
0 / 0 / 0
Регистрация: 07.02.2010
Сообщений: 18
25.05.2011, 04:54  [ТС]     Работа со структурой #7
Прошу прощения, я неточно выразился, я имел ввиду, чтобы это записывалось в файл, а не выводилось в консоль
dampir_sanek
149 / 147 / 21
Регистрация: 09.02.2010
Сообщений: 407
25.05.2011, 05:04     Работа со структурой #8
mkth, тогда лучше используй Си++ способ работы с файлами, то есть fstream. Ты же используешь способ Си FILE *fp в программе на Си++. Это неверно.
pito211
 Аватар для pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
25.05.2011, 05:51     Работа со структурой #9
в консоли можешь перенаправить stdout в файл, так даже лучше будет
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2011, 22:49     Работа со структурой
Еще ссылки по теме:

работа со структурой C++
Работа со структурой C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
mkth
0 / 0 / 0
Регистрация: 07.02.2010
Сообщений: 18
25.05.2011, 22:49  [ТС]     Работа со структурой #10
Спасибо, мне нужно и в консоль и в файл одновременно... А как считать данные из файла, не подскажите?
Yandex
Объявления
25.05.2011, 22:49     Работа со структурой
Ответ Создать тему
Опции темы

Текущее время: 21:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru