В выходной текстовый файл добавлены строки

Я компилирую проект Fortran 77 с Visual Studio 2008 с использованием Intel Fortran 2013, и у меня возникает глупая проблема в одном из выходных файлов, созданных исполняемым файлом. В этом файле я ожидаю прочитать что-то вроде

EXPECT FILE :
"
foo1
foo2
"

вместо этого я получил почти то же самое, но с пустыми строками между строками:

OBTAINED FILE:
"
foo1

foo2
"

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


Исходный код выглядит так:

character*80 comment(2)

comment(1)="foo1"
comment(2)="foo2"

do i=1, 2
 write(10,*)comment(i)
end do

Я попытался изменить несколько параметров в Fortran Properties, но ни один из них не работал.

Кто-нибудь знает об этом?


person calvin    schedule 03.12.2015    source источник
comment
Можете ли вы проверить, действительно ли у вас есть пустые строки, а не просто много (скажем, 76) пробелов в конце каждой строки?   -  person francescalus    schedule 03.12.2015


Ответы (1)


Это (скорее всего) потому, что строка печатается, включая все 80 символов, то есть даже с конечными пробелами (как предлагается в комментариях). Это можно увидеть напрямую, заключив печатаемую строку в кавычки:

WRITE(10, '(A)') "'"//comment(i)//"'"

Одним из решений было бы использовать, например,

WRITE(10, '(A)') TRIM(ADJUSTL(comment(i)))

Здесь ADJUSTL также удалит ведущие пробелы. Если это нежелательно, можно использовать только TRIM.

person ewcz    schedule 03.12.2015