2014-01-22 2 views
5

Я хочу сохранить символ новой строки в моей переменной буфера символов buff. До сих пор мой код выглядит следующим образом:Как написать символ новой строки в символьной переменной в Fortran?

 program TYPE_CHECK 

c newline storage in buffer 
     character(100), dimension(10) :: buff 
     integer, dimension(10) :: x 
     integer :: i 

     do i=1,10 
     x(i) = i 
     enddo 

     do j=1,10 
     write(buff(j), 1) x(j), x(j) 
1  format(' This is line ', I3, /, 
     *  ' This is newline ', I3) 
     enddo 

     do j=1,10 
     write(*, "(A100)") buff(j) 
     enddo 

     end program TYPE_CHECK 

Это дает следующее сообщение об ошибке:

At line 13 of file myfoo6.F 
Fortran runtime error: End of file 

ответ

9

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

Использование дескриптора редактирования косой черты - это фактически запрос на переход к следующей записи. Для внутреннего файла (запись символьной переменной) это следующий элемент массива. В вашем примере кода вы передаете скаляр в качестве символьной переменной (так что только одна запись), следовательно, возникает условие окончания файла.

+1

В старшем fortran вы используете 'char (10)' для новой строки ascii .. – agentp

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