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

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

Войти
Регистрация
Восстановить пароль
 
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
#1

getline - C++

09.08.2012, 15:48. Просмотров 1090. Ответов 8
Метки нет (Все метки)

Вот отрывок кода:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    cout << "Введите тел. работодателя: ";
            cin.getline(Mobile, 30);
            group[i].setMob(Mobile);
 
        cout << "Введите примерный размер ЗП(т.р): ";
            cin >> Money;
            group[i].setMon(Money);
    }
 
    cout << "\n\nВывод введенной информации о вакансиях: ";
    for(int i = 0; i < n; i++)
    {
        cout << "\nНомер вакансии: " << group[i].getID() <<
                "\nНазвание вакансии: " << group[i].getJob() <<
                "\nТел. работодателя: " << group[i].getMob() <<
                "\nРазмер ЗП(т.р): " << group[i].getMon() << "\n";
    }
Проблема вот в чем, когда запуская программу функция getline не работает, т.е. сразу выскакивает следующие: Введите тел. работодателя: Введите примерный размер ЗП(т.р):, как понимает шансов ввести номер нет... при вставке cin >> Mobile работает, но выдает без первого символа... что делать? Mobile задал как массив char Mobile[30]; Заранее благодарю)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.08.2012, 15:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос getline (C++):

Отличие getline() от cin.getline() - C++
Чем отличается getline() от cin.getline() ?

Объясните разницу между "cin.getline" и "std::getline" - C++
string a; cin.getline(a); getline(cin, a);в чем разница между &quot;cin.getline(a);&quot; и &quot;getline(cin, a);&quot;

getline - C++
Я считываю число из входного потока, но дальше из входного потока уже не могу считать строку. Его надо очищать что ли? #include...

getline() - C++
#include &lt;string&gt; #include &lt;iostream&gt; using namespace std ; int main() { string s; cout &lt;&lt; &quot;Vvedite frazu: &quot;; ...

Getline - C++
Проблема такая: getline не хочет работать так как надо, после строки &quot;Enter the manufacturer: &quot; программа не дает ввести имя и сразу...

Getline си++ - C++
Подскажите пожалуйста, в чем причина неправильной работы кода? while(file.getline(name_file, 4, '=')) { ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Avazart
Эксперт С++
7191 / 5365 / 280
Регистрация: 10.12.2010
Сообщений: 23,673
Записей в блоге: 17
09.08.2012, 17:34 #2
1. Лучше ипользовать
C++
1
2
std::string s;
std::getline(cin,s);
2. Юзать cin.ignore(numeric_limits<streamsize>::max(), '\n');
3. В место '\n' использовать std::endl;
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
09.08.2012, 18:52  [ТС] #3
я по другому решил проблемы, после каждого cin поставил очищение потока и все заработало
0
Avazart
Эксперт С++
7191 / 5365 / 280
Регистрация: 10.12.2010
Сообщений: 23,673
Записей в блоге: 17
09.08.2012, 19:01 #4
Что за очишение потока?

clear() что ли ? так это сброс ошибок...
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
09.08.2012, 19:17  [ТС] #5
т.е. с помощью сброса буфера ввода fflush(stdin)
0
Avazart
Эксперт С++
7191 / 5365 / 280
Регистрация: 10.12.2010
Сообщений: 23,673
Записей в блоге: 17
09.08.2012, 19:19 #6
Тоже вариант... хотя и сишный...
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
10.08.2012, 00:17  [ТС] #7
нашел вот такой способ, плюсовый теперь cin.sync();
0
Avazart
Эксперт С++
7191 / 5365 / 280
Регистрация: 10.12.2010
Сообщений: 23,673
Записей в блоге: 17
10.08.2012, 00:59 #8
Почитай тему ссылку на которую я привел cin.sync(); не всегда работает...
0
gray_fox
What a waste!
1520 / 1223 / 70
Регистрация: 21.04.2012
Сообщений: 2,560
Завершенные тесты: 3
10.08.2012, 01:11 #9
Цитата Сообщение от yoghurt92 Посмотреть сообщение
fflush(stdin)
могут возникнуть проблемы, т.к. UB по стандарту, насколько я помню. Лучше уж cin::ignore.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.08.2012, 01:11
Привет! Вот еще темы с ответами:

Getline - C++
Доброго времени суток. В чём ошибка? Пишет, что пространство имён &quot;std&quot; не содержит члена &quot;getline&quot;. while (!std::getline(file,...

getline - C++
подскажите, в чем проблема, не работает getline, если пишу такой же код в другой программке работает, а тут нет #include&lt;iostream&gt; ...

getline() в рекурсивной ф-и - C++
почему в рекурсивной ф-и гетлайн учитывается только однажды? к примеру: int get_answer() { string str; string question; ...

Помогите с getline - C++
Добрый день! Помогите, пожалуйста, разобраться с механизмом работы функции getline класса ifstream. Есть кусок кода: int buffLen =...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.08.2012, 01:11
Ответ Создать тему
Опции темы

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