Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
20 / 20 / 11
Регистрация: 12.07.2015
Сообщений: 350

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

16.07.2015, 09:36. Показов 1211. Ответов 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.07.2015, 09:36
Ответы с готовыми решениями:

Пропускает ввод данных в консоли. Не работает часть кода. Пропускает ввод фио
Добрый день! Помогите пожалуйста! В void add_dinamo() пропускает cout&lt;&lt;&quot;ФИО: \t&quot; ; cin.getline(b.fio, 49); а дальше...

Ввод данных в консоли
#include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;locale.h&gt; #include &lt;stdlib.h&gt; #include &lt;ostream&gt; #include &lt;iomanip&gt; #include...

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

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

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

далее можете сделать цикл в котором отделяете одни слова от других(если i-тый символ ==пробелу, то первое слово включает в себя символы с нулевого по i-1)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.07.2015, 14:41
Помогаю со студенческими работами здесь

Пропускает ввод данных в консоли
Доброго времени суток. Работа со списками. Мне нужно оформить данные об автобусах, введенные с клавиатуры, в виде списка. Цикл...

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru