![]() |
|
Модераторы: bsa |
![]()
|
|
| Schummi |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 20.2.2008 Репутация: нет Всего: нет |
Использую VS6.0 SP6.
Есть две проблемки первая с getline():
пример работы проги, ([Enter] - имеется в виду нажатие клавиши enter): Input 1 string:abcdef[Enter] - тут ввод s1 должен завершитсья(getline c двумя аргументами) 123456[Enter] - однако ввод продолжается - и это явно ошибка компилятора Output 1 string:abcdef -вывели s1 и пока все верно Input 2 string:ABCDEF[Enter] -тут ввод s2 завершился, но примерно понятно почему - из-за второго [enter] при первом вводе Output 2 string:123456 -выводим s2, но это не ABCDEF как должно было быть, а "остатки" потока после ввода s1 Press any key to continue такое ощущение что ввод опережает нажатие клавиши enter лазил по сайту искал подобную тему, но ненашел... если кто знает дайте ссылки - проблема и так ясна, ну или пример кода как этого избежать в данный момент использую просто третий аргумент для указания символа завершения ввода getline(cin,str,'*') - но это не удобно. проблемка вторая просто пример
при попытке компиляции ошибка - :: error C2065: '_atold' : undeclared identifier типа не видит иденти-ор функции, но как это исправить. Странно когда пишу код _atold( - после открытия скобки компилятор помогает и указвает тип аргумента, то есть объявление фукнции то видит. Пробовал подключать <math.h> или <cmath> или <cstdlib> -то же самое... в принципе надо перевести подготовленный строковый тип к типу double |
||||
|
|||||
| EnergoHokum |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 600 Регистрация: 10.11.2006 Где: Россия, Ставропол ь Репутация: нет Всего: 6 |
По поводу первого -- не знаю, у меня на MinGW/GCC отлично всё сработало, а второе -- функции _atold нету, есть _atoldbl из stdlib.h (по крайней мере, она обозначена в MSDN).
|
|||
|
||||
| Dronchik |
|
|||
![]() Звукач ёмаё ![]() ![]() Профиль Группа: Участник Сообщений: 451 Регистрация: 1.5.2007 Репутация: 1 Всего: 37 |
Schummi, по первому у меня всё работало нормально. Но если хочешь, можешь просто поставить таймер, который задерживал бы на пару милисекунд вывод.
-------------------- Вместо слов делай дело, от которого ты фанатеешь. (с) |
|||
|
||||
| Schummi |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 20.2.2008 Репутация: нет Всего: нет |
to EnergoHokum:
вообщем _atoldbl отсутсвует в stdlib.h - но нашел нашел замену atof(char*) - вроде делает все как надо. ну а с getline() будем пока работать так как есть . хотя странно открываю в word stdlib.h поиском функцию _atold() находит но исопьзовать не получается... |
|||
|
||||
| EnergoHokum |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 600 Регистрация: 10.11.2006 Где: Россия, Ставропол ь Репутация: нет Всего: 6 |
VisualStudio 6 -- довольно старая среда, сейчас многое добавилось, многое изменилось. В заголовках 8-ой VS эта функция есть.
|
|||
|
||||
| Dronchik |
|
|||
![]() Звукач ёмаё ![]() ![]() Профиль Группа: Участник Сообщений: 451 Регистрация: 1.5.2007 Репутация: 1 Всего: 37 |
EnergoHokum, но по крайне мере она не тормозит и не глючит на каждом шагу, а это свойственно новым средам.
Schummi, эта функция приводит строку к типу float а не double. -------------------- Вместо слов делай дело, от которого ты фанатеешь. (с) |
|||
|
||||
| Schummi |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 20.2.2008 Репутация: нет Всего: нет |
||||
|
||||
| new_web |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 1.2.2008 Репутация: нет Всего: нет |
Странно, в билдере подобной проблемы (первая) не возникает, всё хорошо компилируется, и корректно работает.
Если среда разработки не идёт к програмисту, значит ,надо програмисту идти к среде разработки - а именно - менять! ИМХО* |
|||
|
||||
| EnergoHokum |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 600 Регистрация: 10.11.2006 Где: Россия, Ставропол ь Репутация: нет Всего: 6 |
Переходи на Emacs+MinGW/GCC, работаю, и доволен -- как слон. |
|||
|
||||
| Dronchik |
|
|||
![]() Звукач ёмаё ![]() ![]() Профиль Группа: Участник Сообщений: 451 Регистрация: 1.5.2007 Репутация: 1 Всего: 37 |
Schummi, насчёт первой проблемы я уже посаветовал. Если тебе не нравиться как вывод идёт(скорость всмысле), то задерживай его.
-------------------- Вместо слов делай дело, от которого ты фанатеешь. (с) |
|||
|
||||
| Sleepless |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 30.1.2008 Репутация: нет Всего: нет |
Schummi, вот решение первой проблемы: The getline template function reads an extra character after encountering the delimiter
|
|||
|
||||
| Schummi |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 20.2.2008 Репутация: нет Всего: нет |
Думаю, что ссылка от Sleepless и есть самое правильное решение. Всем огромное спасибо |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |