![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Кстати, вполне возможно, что это и есть разгадка аномалий с потоками, наблюдаемых топикстартером
Стараюсь -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
Dims, проверь is_open'ом
|
|||
|
||||
| Dims |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1016 Регистрация: 21.11.2006 Репутация: 1 Всего: 11 |
Естественно, нет Но должен же быть способ ему сказать, что я хочу? Я думал, что операция cin >> v должна выбирать из потока целое число (если long v) и останавливаться тогда, когда символ не является цифрой (точнее, когда его невозможно уже считать частью числа). Судя по всему, у других так и работает. |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Так и есть. Можешь сам попробовать сделать так:
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| Dims |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1016 Регистрация: 21.11.2006 Репутация: 1 Всего: 11 |
У меня получилось вот что
Видимо, после первой попытки прочитать число, поток переходит в состояние ошибки, при этом ни первое, ни последующие извлечения не производятся (в переменных остаётся мусор). Это что же, Вижуал Студио так работает неправильно? А где-то написано, что она должна работать иначе? |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Dims, ага, написано... В том самом талмуде, который я тебе не так давно отправлял
У меня получается то же самое, в случае, если удалить файл test.txt(или убрать его куда-нибудь). Проверено на студии и мной и Алеком 86-го года рождения. Видимо, что-то ты делаешь не так... -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| Random13 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 21.11.2007 Репутация: нет Всего: нет |
Не знаю точно о разделителе, но настройки стрима по умолчанию можно менять, например
ostream << setprecision(2) << setfill(*) << setw(6) << 4.17; выведет ***4.2 нужно поискать остальные в хэлпе Это сообщение отредактировал(а) Random13 - 4.12.2007, 19:02 |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Random13, какое отношение это имеет к теме топика?
Это сообщение отредактировал(а) bsa - 4.12.2007, 18:18 |
|||
|
||||
| Random13 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 21.11.2007 Репутация: нет Всего: нет |
Человек вместо пробелов хочет запятую разделителем сделать по умолчанию - ну это одна из проблем - как я понял. Это сообщение отредактировал(а) Random13 - 4.12.2007, 18:22 |
|||
|
||||
| Dims |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1016 Регистрация: 21.11.2006 Репутация: 1 Всего: 11 |
Это отдельный вопрос: почему в этом случае не срабатывает
? Чтобы не гадать, где должен лежать файл, я написал так
И получил тот же результат (мусор). Добавлено через 41 секунду P.S. При этом текстовый файл образовался, где я и предполагал. |
||||||
|
|||||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Мда... MSVC-?.?
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| Dims |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1016 Регистрация: 21.11.2006 Репутация: 1 Всего: 11 |
Microsoft Visual Studio 2005
Version 8.0.50727.42 (RTM.050727-4200) Microsoft .NET Framework Version 2.0.50727 А почему у тебя oops не выводится? Ведь !fin должно быть истинно, когда с потоком что-то не так. Следовательно, если файл не существует, то исполнение должно идти в эту ветку. Нет? Добавлено через 32 секунды Причём кажется, мне что я когда рылся в документации, где-то видел типа, что так и должно быть. |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Дык у тебя же с ним всё в порядке...
Ты точно что-то не так делаешь... Я тоже на восьмой проверял. Сомневаюсь, что это из-за сервис-пака. Завтра ещё на работе проверю - там у меня без сервис-пака. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| Dims |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1016 Регистрация: 21.11.2006 Репутация: 1 Всего: 11 |
А ты предположи, что может быть не так? В последней программе файла не может не быть, ведь он создаётся из самой программы.
Я так понял, такой глюк не только у меня. Может быть, в каких-то настройках компиллятора можно задавать разделитель, хоть это и странно? |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
попробуй:
а разделитель задать нельзя. т.е. потоки умеют глотать пробельные символы; является ли символ пробельным определяется локалью. в принципе можно создать локаль, объявив запятую пробельным символом, но мне кажется это чересчур сложно для такой простой задачи. Добавлено через 3 минуты и 47 секунд > И получил тот же результат (мусор). Вообщето код этот не только выглядит работающим, но и работает VS 2003 |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |