2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Ошибка при чтении данных из файла (Fortran)
Сообщение06.05.2019, 18:43 
Помогите найти ошибку, при работе программы выдаёт ошибку: program received signal SIGSEGV: Segmentation fault, вот сама программа:

код: [ скачать ] [ спрятать ]
Используется синтаксис Fortran
implicit none

real ::  X=1., Y=2., Z=3.
!Открытие пустого файла, запись данных и закрытие файла

open(1, file= "info.txt",STATUS='old', ACTION='write')
write(1,*)  X, Y, Z
close(1)
!Открытие существующего файла, чтение данных и закрытие файла
open(1, file= "info.txt",STATUS='old', ACTION='read')
read(1,*)  X, Y, Z
close(1)
!Вывод на экран данных, считанных из файла
print*, X, Y, Z
end
 

 
 
 
 Re: Ошибка при чтении данных из файла (Fortran)
Сообщение06.05.2019, 19:12 
 i  На будущее - не забывайте оформлять код с помощью соответствующего тега и пользоваться подсветкой синтаксиса (выше я это сам исправил).
При первом открытии файла STATUS='old' означает, что файл должен существовать (пустой или непустой - неважно). У вас его, по-видимому, нет, как следствие, программа в этот момент обязана останавливаться с ошибкой времени выполнения. Если его предварительно создать, то все будет работать.

Правда, проверка существования файла для его последующей перезаписи малоосмысленна, так что проще, наверное, просто убрать соответствующий параметр, он тут явно не нужен.

 
 
 
 Re: Ошибка при чтении данных из файла (Fortran)
Сообщение06.05.2019, 19:26 
Действительно, спасибо

 
 
 
 Re: Ошибка при чтении данных из файла (Fortran)
Сообщение07.05.2019, 14:52 
Аватара пользователя
Можно не удалять этот параметр, а присвоить ему статус unknown, хотя наверное нет особого смысла. А вот параметр access='append' может оказаться полезным, в этом случае при следующем открытии файла предыдущие данные не удаляются, а новая информация дозаписывается.

 
 
 [ Сообщений: 4 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group