![]() |
Никогда не любил ни cin ни cout
Но вот себе пример копирую с сопровождающего диска (авторы компилировали точно не на MSVC) Вот пример: Код:
вместо того, чтобы завершить ввод по первому getline (после Enter) мне выдается еще одна строка, вроде как относящаяся к тому же getline. Если смотреть по trace то эта вторая строка не запоминается. Приблизительно повторяется то же, что и в первом случае со вторым getline. Ввести price не удается, он срывается с места и считает что я везде ввел по нулям и зацикоивается в этом while(1) простенькие cin и cout срабатывали у меня раньше... здесь http://forum.oszone.net/topic.cgi?fo...&start=0#0 прочитал Вероятнее всего причина в том, что в проверяющей системе стоит компилятор MSVC 6.0 и там замечено много глюков с STL Бороться с этим можно, может знает кто? Патч специальный например какой-нибудь.... А то я задумал активно использовать STL в своей программе, а тут даже рабочий пример "нерабочий". Обидно :( |
Crew
Это getline виновата. Она всегда в буфере оставляет CR/LF. Нужно буфер чистить. |
shurikan
Не могу вспомнить замену cin.ignore(), но она ведь должна извлекать и уничтожать данные из потока. Если не сложно, как можно переписать ввод нескольких слов из потока? т.е. я не смог изобразить у себя ввод с клавиатуры нескольких слов, чтоб они в одну переменную заносились (раньше книга была, где это описывалось, но кто-то заиграл) |
Вот этот код нормально работает на билдере 6 и наверняка то же будет и в других оболочках:
Код:
|
ID (Type 0 to finish): stID
k Name :just name Price : Invalid Price. Try again. Price : Результат работы вышепрведенного кода : Vla2003 большое спасибо, но dиновата я думаю MSVC, попробую этот код в другом компиляторе опробовать |
Crew
Цитата:
|
Vla2003
Price я вообще не ввожу, прошу прощения, что не пояснил. Где есть текст, там программа дает мне ввести код, где нет, он просто проскакивает. если б не блок корректности, то была бы та же зацикленность (а она и осталась) что и первый раз, только тут меня вежливо просят повторить |
Время: 14:10. |
Время: 14:10.
© OSzone.net 2001-