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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Nik-
20 / 20 / 9
Регистрация: 12.07.2015
Сообщений: 339
#1

Ввод данных в консоли - C++

16.07.2015, 09:36. Просмотров 410. Ответов 2
Метки нет (Все метки)

При вводе в консоль названия элемента, должна выводиться его плотность. Когда ввожу имена элементов первой структуры ( Fluids) и при нажатии enter, программа выводит его плотность. Беда в том, что во второй и третей структуре надо вводить имя элемента 2 и 3 раза соответственно. В чем тут дело.

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
#include <iostream>
#include <string>
 
 
 
using namespace std;
struct Fluid // структура Жидкости
{
    string name;
    double d;
};
struct Gas // структура Газы
{
    string name;
    double d;
};
struct Solid // структура Твердые тела
{
    string name;
    double d;
};
 
    int main()
 
{
    setlocale(LC_ALL,"Russian");
    string str;
 
    {
         Fluid Fluids[20] = { { "Voda", 1.00 }, // Создание массива в структуре Жидкости
                            { "Kerosin", 0.82 },
                            { "Morskaya voda", 1.03 },
                            { "Spirt", 0.80 },
                            { "Rtut", 13.60 },
                            { "Bensin", 0.74 },
                            { "Maslo podsoln", 0.93 },
                            { "Aceton", 0.79 },
                            { "Efir", 0.71 },
                            { "Neft", 0.80 } };
        cin >> str;
           for (int i = 0; i < 20; i++)
             if(str == Fluids [i].name)
             cout << "Плотность: " << Fluids [i].d << " г/см.куб" << endl;
 
    };
 
    {
        Gas Gases[20] = { { "Azot", 0.00125 }, // Создание массива в структуре Газы
                         { "Kislorod", 0.001429 },
                         { "Vodorod", 0.00009 },
                         { "Uglekisly gas", 0.00198 },
                         { "Metan", 0.000717 },
                         { "Gely", 0.00018 },
                         { "Prirodny gas", 0.0008 },
                         { "Ugarny gas", 0.00125 },
                         { "Xlor", 0.00321 } };
 
 
        cin >> str;
           for (int i = 0; i < 20; i++)
             if(str == Gases [i].name)
             cout << "Плотность: " << Gases [i].d << " г/см.куб" << endl;
 
    };
 
    {
       Solid Solids[10] = { { "Aluminy", 2.7 }, // Создание массива в структуре твердые тела
                            { "Zoloto", 19.3 },
                            { "Svinec", 11.3 },
                            { "Serebro", 10.5 },
                            { "Olovo", 7.3 },
                            { "Stal", 7.8  },
                            { "Led", 0.90 },
                            { "Parafin", 0.90 },
                            { "Dub", 0.70 },
                            { "Sosna", 0.40 } };
 
        cin >> str;
           for (int i = 0; i < 20; i++)
             if(str == Solids [i].name)
             cout << "Плотность: " << Solids [i].d << " г/см.куб" << endl;
    }
 
 
 
return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.07.2015, 09:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ввод данных в консоли (C++):

Меню в консоли - Ввод данных - C++
Доброй ночи Просьба не судить строго мой код - я только учусь! Вот код меню: #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include...

Перевод каретки и ввод данных в консоли - C++
Хотелось бы ввести данные в две строки за один раз... В простейшем случае пример выглядит так: #include &lt;iostream&gt; #include &lt;cstdio&gt;...

Перевод каретки и ввод данных в консоли - C++
Хотелось бы ввести данные в две строки за один раз... В простейшем случае пример выглядит так: #include &lt;iostream&gt; #include &lt;cstdio&gt;...

Как прекратить ввод данных из консоли - C++
Программа должна считывать пары точек (x, y), но заранее не известно количество пар. Как сделать так, чтобы ввод прекратился после ввода...

Ввод в консоли - C++
Возникла проблема: необходимо при вводе в консоли сделать так, чтобы при нажатии enter вводил значение по умолчанию. Также необходима...

Ввод символов из консоли - C++
Всем привет! Подскажите пожалуйста почему, когда мы через консоль (путем драгЭдропа) указываем адрес файла, и этот адрес имеет пробел,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
LittleCyberF
0 / 0 / 0
Регистрация: 16.07.2015
Сообщений: 1
16.07.2015, 11:04 #2
Прежде всего, 3 одинаковых структуры с разными названиями.
Сделать 1 шаблон и от нее лепить.
data Solid
data Gas
и т.д.

Для названий из 2 слов - "cin" не работает.
Используйте std::getline (std::cin,name);
0
Kuziaka
6 / 6 / 2
Регистрация: 22.07.2015
Сообщений: 36
23.07.2015, 14:41 #3
попробуйте getline()
getline считывает строку с пробелами
в аргументах указываем сначала поток, из которого надо брать строку(в вашем случае cin),
потом имя переменной в которую "кладём строку"
пример
C++
1
2
3
string s;
getline(cin,s);//можете ввести строку с пробелами
cout<<s;//вывод строки с пробелами
getline() считывает строку до нулевого символа (окончание строки \0)

далее можете сделать цикл в котором отделяете одни слова от других(если i-тый символ ==пробелу, то первое слово включает в себя символы с нулевого по i-1)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.07.2015, 14:41
Привет! Вот еще темы с ответами:

Ввод текста в консоли - C++
Здравствуйте. Задание: Ввести текст, поменять местами 5й и 7й символы. #include &lt;conio.h&gt; #include &lt;iostream.h&gt; #define SIZE...

Ввод чисел в консоли - C++
как сделать ввод n целых чисел на с++, простая штука, но че то не допираю, и реально ли это если не дано n, числа вводятся через пробел

Безопасный ввод с консоли - C++
Добрый день есть функция безопасного ввода чисел в консоли: int Protocol::SafeIn() { int k, n = 0, flgS = 0, c = 0, q = 0; ...

Ввод строки с консоли - C++
Всем привет, такой вопрос. Нашел годный пример. Как реализовать ввод строки &quot;5*3-9/3&quot; вручную с консоли? Заранее благодарен. ...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru