Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
AmbA
32 / 15 / 5
Регистрация: 09.06.2017
Сообщений: 94
Записей в блоге: 2
#1

Строковый ввод (слов больше одного)

23.06.2017, 13:30. Просмотров 98. Ответов 4
Метки нет (Все метки)

Раз десять проглядел соответствующий раздел, никак не пойму. Вот задача:
Структура содержит 3 члена: диаметр пиццы, название компании-производителя, вес пиццы. Напишите программу, которая принимает значения и затем отображает, с применением операции new для размещения структуры в свободном хранилище.
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <string>
int main()
{
    using namespace std;
 
    struct PizzaBar
    {
        int diam;
        string name;
        float weight;
    };
            
    PizzaBar *omn = new PizzaBar;
        
    cout << "enter diam for omn: ";
    cin >> (*omn).diam;
    cout << "enter name for omn: ";
    cin >> (*omn).name; cin.get();
    cout << "enter weight for omn: ";
    cin >> (*omn).weight;
        
    cout << "\ndiam omn: " << (*omn).diam << endl;
    cout << "Name omn: " << (*omn).name << endl;
    cout << "weight omn: " << (*omn).weight << endl;
 
    delete omn;
    return 0;
}

Суть в том, что cin пробел после первого слова воспринимает как конец ввода. В результате в очереди остаются последующие слова, и падают в следующий cin. Сейчас я решаю это с помощью cin.get();, но выглядит это очень тупо. Есть нормальный метод ввода строк?

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2017, 13:30
Ответы с готовыми решениями:

Строковый ввод-вывод
Добрый вечер) Я решала задачу. Первый пункт выполняет отлично. А на второй она...

Строковый ввод-вывод
Прошу помочь в решении задачи на С++. Только начал изучать. Постановка...

Строковый ввод-вывод
Создать текстовый файл F1 не менее, чем из 10 строк и записать в него...

Строковый ввод-вывод
1) Скопировать из файла F1 в файл F2 строки, начиная с N до K. 2) Подсчитать...

Строковый ввод-вывод
Приветствую. Необходима помощь. Постановка задачи: Создать текстовый файл F1...

4
Даценд
Модератор
Эксперт .NET
4046 / 3886 / 2573
Регистрация: 20.04.2015
Сообщений: 7,060
23.06.2017, 13:49 #2
AmbA,
Распространенные ошибки
0
nmcf
6259 / 5571 / 2531
Регистрация: 14.04.2014
Сообщений: 23,451
23.06.2017, 13:49 #3
getline() и название вводи первым.
0
AmbA
32 / 15 / 5
Регистрация: 09.06.2017
Сообщений: 94
Записей в блоге: 2
23.06.2017, 14:05  [ТС] #4
Цитата Сообщение от Даценд Посмотреть сообщение
Распространенные ошибки
C++
1
(cin >> n).get();
По такому принципу и делаю. Думал, можно как-то ещё. Но за ссылку спс )
Цитата Сообщение от nmcf Посмотреть сообщение
getline()
Это строковый ввод в массив, а у меня - в string.
0
nmcf
6259 / 5571 / 2531
Регистрация: 14.04.2014
Сообщений: 23,451
23.06.2017, 14:29 #5
Цитата Сообщение от AmbA Посмотреть сообщение
а у меня - в string
Ты плохо изучил документацию.
C++
1
std::getline(cin, omn->name);
И убери эти скобки.
0
23.06.2017, 14:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.06.2017, 14:29

Строковый ввод-вывод
Помогите пожалуйста решить задачу, вот она: Нужно создать текстовый файл F1 не...

Нужна Помощь! Строковый ввод-вывод!
Лабораторная работа № 6 &quot;Строковый ввод-вывод&quot; Цель: Работа с текстовыми...

Проверка на ввод только символов (строковый класс)
Здравствуйте, проблема заключается в том, что не знаю как сделать проверку на...


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

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

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