1 / 1 / 0
Регистрация: 14.03.2016
Сообщений: 45
|
||||||
1 | ||||||
Ошибка после первого цикла14.03.2016, 23:25. Показов 1002. Ответов 15
Метки нет (Все метки)
0
|
14.03.2016, 23:25 | |
Ответы с готовыми решениями:
15
После первого цикла значения переменных в остальных не меняются и берутся больше допустимого Холодильник Samsung SR-44RMB - повторно не включается после первого цикла (холод. камера +16, мороз -22) Ошибка после выполнения цикла Что это за ошибка после первого writeln |
1 / 1 / 0
Регистрация: 14.03.2016
Сообщений: 45
|
|
14.03.2016, 23:59 [ТС] | 3 |
что?
0
|
1 / 1 / 0
Регистрация: 14.03.2016
Сообщений: 45
|
|
15.03.2016, 00:02 [ТС] | 5 |
странно у меня не работает
0
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
||||||
15.03.2016, 00:06 | 7 | |||||
Сообщение было отмечено Ismet как решение
Решение
Ismet, gets, как и все стандартные функции считывания строки, читают поток ввода до появления символа перевода строки '\n'.
А такие конструкции "cin>>f[i].c" работают по другому, они считывают то что им положено (число, слово и т.п.), а что находится за ними не трогают. Т.е. если после ввода числа ты нажал Enter, т.е. вставил символ перевода строки '\n', то этот символ в потоке ввода после считывания числа останется. И когда твой цикл пойдет на вторую итерацию и выполнит gets(f[i].a);, то он сразу прочитает '\n' не дожидаясь ввода с твоей стороны. Чтобы этого избежать, нужно в конце цикла выкинуть оставшийся символ '\n', для этого можно например выполнить:
1
|
1 / 1 / 0
Регистрация: 14.03.2016
Сообщений: 45
|
|
15.03.2016, 00:09 [ТС] | 8 |
вот так.
не могу вводит 2 имя.программа пропускает его. (вторую команду gets)
0
|
1 / 1 / 0
Регистрация: 14.03.2016
Сообщений: 45
|
|
15.03.2016, 00:13 [ТС] | 10 |
можете код написать мне?а то я не понял
0
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
||||||
15.03.2016, 00:16 | 11 | |||||
Сообщение было отмечено Ismet как решение
Решение
Сочувствую.
1
|
1 / 1 / 0
Регистрация: 14.03.2016
Сообщений: 45
|
|
15.03.2016, 00:19 [ТС] | 12 |
спасибо вам большое!!!все работает!!!урааа
0
|
Вездепух
11691 / 6370 / 1723
Регистрация: 18.10.2014
Сообщений: 16,052
|
|
15.03.2016, 00:20 | 13 |
Зачем вы смешиваете в одном и том же коде ввод через
gets и ввод через cin ? Почему бы вам не сделать все через cin ? И проблема ваша с "первым циклом" тоже бы никогда не возникла.(Не говоря уже о том, что ни в стандартной библиотеке С, ни в стандартной библиотеке С++ больше нет функции gets .)
1
|
1 / 1 / 0
Регистрация: 14.03.2016
Сообщений: 45
|
|
15.03.2016, 00:21 [ТС] | 14 |
а через cin можно ?? я не знал
0
|
Вездепух
11691 / 6370 / 1723
Регистрация: 18.10.2014
Сообщений: 16,052
|
||||||
15.03.2016, 00:23 | 15 | |||||
Разумеется
gets , но зато без gets .В таком варианте вам не понадобится добавлять никакого cin.ignore .
1
|
1 / 1 / 0
Регистрация: 14.03.2016
Сообщений: 45
|
|
15.03.2016, 00:24 [ТС] | 16 |
спасибо
0
|
15.03.2016, 00:24 | |
15.03.2016, 00:24 | |
Помогаю со студенческими работами здесь
16
Установка Debian. Ошибка после первого запуска Где ошибка из-за которой после выполнения первого if остальные не выполняются Ошибка: Нельзя изменять значение переменной цикла внутри этого цикла Ошибка: Нельзя изменять значение переменной цикла внутри этого цикла Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |