0 / 14 / 1
Регистрация: 29.05.2015
Сообщений: 61
|
|||||||||||
1 | |||||||||||
Компилятор игнорирует функции cin, if, for07.06.2015, 15:30. Показов 2998. Ответов 15
Метки нет (Все метки)
После запуска программа дает ввести только строку. После чего выбивается весь cout, игнорируя и функции cin, и разветвление іf и циклы for. Были попытки запустить в C++ Builder 6 и в Dev-C++, результат один. Компилятор в билдере пишет [C++ Warning] Unit1.cpp(19): W8060 Possibly incorrect assignment, гуглила, но что ему не нравится понять все равно не могу. На скрине - то, что выводит программа сразу же после ввода строки.
Dev-C++ :
0
|
07.06.2015, 15:30 | |
Ответы с готовыми решениями:
15
Игнорирует cin в цикле. Игнорирует ввод cin Компилятор игнорирует явный конструктор копирования Как работает cin.peek, cin,get, cin.ignore, cin.clear? |
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
|
||||||
07.06.2015, 15:34 | 2 | |||||
Как-то странно называть именем stroka переменную, содержащую только один символ
1
|
0 / 14 / 1
Регистрация: 29.05.2015
Сообщений: 61
|
||||||
07.06.2015, 15:42 [ТС] | 3 | |||||
Если сделать так,
В чем может быть моя ошибка?
0
|
14 / 14 / 13
Регистрация: 04.06.2015
Сообщений: 85
|
||||||
07.06.2015, 15:46 | 4 | |||||
0
|
0 / 14 / 1
Регистрация: 29.05.2015
Сообщений: 61
|
|
07.06.2015, 15:50 [ТС] | 5 |
Массив тоже и заполняется и выводится?
0
|
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
|
|
07.06.2015, 15:57 | 6 |
А почему не можете воспользоваться отладчиком?
https://www.cyberforum.ru/cpp-... 62479.html
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
|
|
07.06.2015, 16:04 | 7 |
а как работает???
нажми например "N"; итак answer1 имеет размер одиночного символа в if происходит присваивание =а не сравнение == присваивается адрес строки "YES" кастрированная до одного байта, до остальных не доходит поскольку адрес имеет значение отличное от 0 то соответственно TRUE if срабатывает для сравнения строк есть такая функция strcmp http://cppstudio.com/post/707/
0
|
14 / 14 / 13
Регистрация: 04.06.2015
Сообщений: 85
|
||||||
07.06.2015, 16:35 | 9 | |||||
ValeryS,
Я лишь сказал про то, что у меня вводятся все строки и ничего не игнорируется , как говорит автор. Про остальное - ничего, остальное я даже не смотрел. Добавлено через 2 минуты
0
|
196 / 197 / 120
Регистрация: 27.05.2011
Сообщений: 545
|
|
07.06.2015, 16:40 | 10 |
0
|
0 / 14 / 1
Регистрация: 29.05.2015
Сообщений: 61
|
||||||
07.06.2015, 17:16 [ТС] | 11 | |||||
ValeryS, Вы имеете ввиду попробовать вот так?
0
|
196 / 197 / 120
Регистрация: 27.05.2011
Сообщений: 545
|
|
07.06.2015, 17:52 | 12 |
Да, и так написать для каждой строчки. Только учтите, что strcmp возвращает 0, если строчки раавны
0
|
0 / 14 / 1
Регистрация: 29.05.2015
Сообщений: 61
|
|||||||||||
07.06.2015, 18:06 [ТС] | 13 | ||||||||||
mymedia,
Прописывая вот так
Попробовала сделать следующим образом
0
|
Почетный модератор
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
|||||||||||
07.06.2015, 18:16 | 14 | ||||||||||
По сути, в этой строчке
нужно либо поменять местами условия, чтобы сначала проверялись Yes и т.п., а уже потом одна буква, либо убрать дальнейшие проверки на "yes" и т.д. Так как компилятор, видя оператор логического ИЛИ при выполнении условия, в целях оптимизации, дальше проверять ничего не будет - не имеет смысла, условие уже по любому выполнено.
Имхо, проще всего убрать лишние проверки - есть Y/y, значит, все ок.
ну а по поводу лучше всего посмотреть текущий код..
1
|
196 / 197 / 120
Регистрация: 27.05.2011
Сообщений: 545
|
|
07.06.2015, 18:18 | 15 |
Ввод одного символа в сотый элемент массива answer1 (если считать с нуля). У вас есть столько элементов в массиве?. Или всё-таки надо ввести строчку… Для этого уберите индекс
0
|
0 / 14 / 1
Регистрация: 29.05.2015
Сообщений: 61
|
|
07.06.2015, 18:38 [ТС] | 16 |
KOPOJI,
Огромное спасибо, помогло. видимо беда в том, что я после паскаля неизменно путаюсь, где в квадратных скобках размерность массива, где длина строки, а где указание на конкретную ее позицию.
0
|
07.06.2015, 18:38 | |
07.06.2015, 18:38 | |
Помогаю со студенческими работами здесь
16
Отличие функции cin.get и cin.getline Защита от дурака при вводе текста с помощью: cin.get cin.clear cin.sync Объясните пожалуйста как работают cin.good(), cin.sync(), cin.clear() Компилятор игнорирует директиву $F Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |