Модератор
|
|||||||||||
1 | |||||||||||
Структуры и ввод строк с пробелами: программа пропускает второй шаг, сразу переходя к третьему - почему?10.06.2014, 14:56. Показов 4044. Ответов 17
Метки нет (Все метки)
Здравствуйте, уважаемые форумчане! Я новичок и в С++ и на этом форуме, так что прошу сильно не пинать.
Начал заниматься по книге Стивена Праты "Язык программирования С++" (Лекции и упражнения, 2011). Операционная система на компе у меня Windows XP SP3 (+все обновления), среда разработки Code::Blocks (версия 13.12). Делаю практические задания (упражнения по программированию) из 4 главы. Сделал задание №7:
ЧЯДНТ?
0
|
10.06.2014, 14:56 | |
Ответы с готовыми решениями:
17
Программа пропускает ввод массива и выдает сразу ответ Структуры. Файловый ввод вывод. Почему не работает программа ? Программа пропускает второй и третий вводы данных Xml сериализация: программа пропускает блок try и сразу выдает то, что файл не выбран |
Модератор
5198 / 2080 / 406
Регистрация: 06.01.2013
Сообщений: 4,794
|
||||||
10.06.2014, 15:06 | 3 | |||||
gru74ik, перед каждым вводом используйте
1
|
Модератор
|
|
10.06.2014, 15:09 [ТС] | 4 |
Не работает. Компилятор ошибку выдаёт. Тем более, в седьмом упражнении точно такой же синтаксис работает же. А в восьмом стоило только строки местами поменять, как начались проблемы.
0
|
12 / 1 / 1
Регистрация: 09.06.2014
Сообщений: 35
|
|
10.06.2014, 15:15 | 5 |
cout << "Введите название компании-производителя: ";
getline (cin, forExample.name); cout << "Введите название компании-производителя: "; getline (cin, forExample->name); Попробуй как в 7 делал
1
|
Модератор
|
||||||||||||||||||||||||||
10.06.2014, 15:32 [ТС] | 6 | |||||||||||||||||||||||||
Вставил эту строчку перед строкой №32. Не помогло.
Добавил и перед каждой строкой, где есть инструкция cin:
Как-то не так, видимо, я эту конструкцию использую (( Добавлено через 4 минуты Не помогает. Да и не должно - в восьмом же указатель у нас, а в случае использования указателей доступ к членам структуры, по идее, осуществляется либо так:
Попробовал вот так:
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
||||||
10.06.2014, 15:36 | 8 | |||||
Сообщение было отмечено gru74ik как решение
Решение
Вот код и работа. Вопросы?
1
|
Модератор
|
|
10.06.2014, 15:42 [ТС] | 9 |
Спасибо огромное, заработало.
Вот только как оно работает? И почему не работал мой вариант? Что там случалось? Ежели не в тягость, объясните, пожалуйста. Или ткните линком где и что почитать.
0
|
Модератор
|
|
10.06.2014, 16:02 [ТС] | 11 |
Читал. Я понял, что если идёт вызов инструкции cin >> и какой-то ввод с клавиатуры, а потом вызов функции getline(cin, x), то получается какая-то ерунда, в программе какой-то сбой, что-то идёт не так, как задумывалось.
Вопрос: что? Добавлено через 9 минут Насчёт это я сам, видать, чё-то напутал и там какая-то ошибка вылетала, извиняюсь. Сейчас всё работает, как задумывалось, большое Вам спасибо. Вот только я механику процесса не понимаю. А хотелось бы. Что там в первоначальном варианте шло не так?
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
||||||
10.06.2014, 16:09 | 12 | |||||
Сообщение было отмечено gru74ik как решение
Решение
После ввода через cin >>, в потоке ввода остаётся '\n' (попадает в поток при нажатии Enter), который перед getline() нужно убрать, иначе getline() считает его первым (для неё это пустая строка) и код, не останавливаясь, пойдёт дальше.
get() извлекает символ из потока ввода (в данном случае - '\n'). Добавлено через 5 минут Тоже самое в две строки:
1
|
0 / 0 / 0
Регистрация: 30.01.2022
Сообщений: 33
|
|
07.02.2022, 05:33 | 14 |
sourcerer,
Привет! Я такой же, каким ты был в 2014
Есть пару вопросов к тому, кто реально не забросил программирование. 1. Что ты дальше учил после Праты? 2. Когда и как ты попал на Trainee/Junior и каков был твой путь для этого?) 3. Что ты бы посоветовал сейчас себе в 2014?)
0
|
Неэпический
|
|
07.02.2022, 09:24 | 16 |
0
|
0 / 0 / 0
Регистрация: 30.01.2022
Сообщений: 33
|
|
07.02.2022, 13:58 | 17 |
0
|
1352 / 851 / 365
Регистрация: 26.02.2015
Сообщений: 3,799
|
|
07.02.2022, 19:27 | 18 |
видишь, как мои советы быстро работают
Добавлено через 15 секунд Поздравляю тебя и желаю успехов!
0
|
07.02.2022, 19:27 | |
07.02.2022, 19:27 | |
Помогаю со студенческими работами здесь
18
Программа пропускает ввод первой строки Программа пропускает ввод символа в цикле Программа пропускает ввод данных несмотря на fflush почему программа пропускает часть кода Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |