2013-03-21 2 views
0

Эй я новичок в Fortran и переполнения стека .. Я хотел бы использовать Fortran для назначения, но я застрял с ошибками времени выполнения .. Любая помощь будет принята с благодарностьючтение переменной в открытый файл

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

subroutine input_data 
    implicit none 
    real*8 a, b 
    open(unit = 5, file = 'inputdata.dat', status = 'unknown') 
    read(5,*) a,b 
    close(5) 
    return 
    end 

Показывает ошибку времени выполнения на строке чтения.

+0

Какую ошибку она производит? Каково содержимое файла, который вы пытаетесь прочитать? Вы должны указать более подробную информацию. (Возможно, вам стоит также обратиться к вашему руководителю, почему его код не работает ...) –

+0

Просто убедитесь, что вы хотите читать переменные * из * файла? Предполагая, что это то, что вы имеете в виду, код является стандартным FORTRAN, поэтому проблема должна быть в файле. Но никто не мог бы рассказать вам, в чем проблема, без этого сообщения об ошибке. Кроме того, поскольку вы читаете текст, вы также можете показать нам содержимое файла, так как это должен быть текстовый файл. Еще одна вещь: количество единиц 5 немного опасно, поскольку FORTRAN по умолчанию считает, что 5 - STDIN. Лично я никогда не использую номера единиц менее 10. –

+0

Еще одна вещь: a и b будут потеряны, когда вы вернетесь. Но, возможно, вы не хотите об этом беспокоиться. –

ответ

0

Я предполагаю, что вы читаете от файла. если это так, ваш статус в вашем открытом заявлении не известен, а «старый». таких как:

open(unit = 5, file = 'inputdata.dat', status = 'old') 

статус «неизвестный» создаст файл, если он не существует, а затем попытаться читать из него. однако, поскольку он только что был создан, в этом файле ничего нет, и, следовательно, вы получаете сообщение об ошибке.

статус «старый» даст вам ошибку aruntime о том, что файл не существует, если файл ... не существует :)

Смежные вопросы