Я пытаюсь вывести тривиальное сообщение об ошибке в Fortran90, например:
error: failed to read '<file>'
Но я не могу понять, как создавать одинарные кавычки, их экранирование приводит к ошибкам компиляции. Я пробовал следующее:
write(*, fmt="('error: failed to read: \'', a, '\'')") arg
Кроме того, если я распечатаю сообщение без них:
write(*, fmt="('error: failed to read: ', a)") file
дополнительная новая строка (т.е. всего две) создается в командной строке. Я получаю arg
, выполняя call getarg(1, arg)
, возможно, это как-то связано с этим.
Вот минимальный рабочий пример, демонстрирующий проблему новой строки:
program foo
character(len=100) :: arg
call getarg(1, arg)
write(*, fmt="('error: failed to read: ', a)") arg
end program foo
Я нахожу форматированный вывод в фортране очень неинтуитивным, если бы кто-то мог дополнительно направить меня к ресурсу, который объясняет это более подробно, было бы здорово.