![]() |
|
|
![]()
|
|
| dmtrm |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 25.1.2009 Где: Волгоград Репутация: нет Всего: нет |
Пытаюсь построчно читать из файла данные и записывать их в массив. Использую безформатное чтение. При запуске программы появляется "Ошибка сегментирования". При отладке в ddd выяснилось, что 7 строчек читается из файла без проблем, а вот на восьмой появлятся: Fortran runtime error: Bad real number in item 24 of list input. 24 элемент ничем на отличается от остальных. Восьмая строчка ничем не отличается по формату от 7 предыдущих. Пробовал удалять первые 8 строчек, и затык снова на 8 строчке присходит. Никак не пойму, почему сбой именно на 8 строчке. В чём ошибка может быть ошибка?
Для компиляции использую gfortran 4.4.5 в debian. Фрагмент программы:
Фрагмент входного файла:
|
||||
|
|||||
| FCM |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: 8 Всего: 9 |
По-видимому, имя txt-файла указано неверно.
Чтобы избежать таких фокусов, в инструкции OPEN нужно использовать параметр STATUS = 'OLD'. Это сообщение отредактировал(а) FCM - 17.12.2010, 18:33 |
|||
|
||||
| Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 5 Всего: 49 |
Как-то очень похоже на глюк компилятора. Попробовал у себя (на имеющемся) 4.5.0 - никаких ошибок не вылезает. Два других компилятора также все "съели" без ошибок.
|
|||
|
||||
| FCM |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: 8 Всего: 9 |
Компилироваться оно может, но при выполнении (mingw-gfortran 4.5.x), если неправильно задано имя файла и не указан status='old', создаст пустой файл - а при считывании из него (если убрать end=101) будет почему-то ругаться на 8-ую или 9-ую запись, что якобы конец файла.
Это сообщение отредактировал(а) FCM - 17.12.2010, 19:44 |
|||
|
||||
| Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 5 Всего: 49 |
Если имя неправильное? Тогда дело в размере буфера считывания, его конец приходится на эту строчку. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Fortran | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |