Tôi muốn đọc trong một số chuỗi văn bản từ dòng lệnh sử dụng để chạy một chương trình. Tôi đang sử dụng chương trình con nội GET_COMMAND_ARGUMENT
trong một chương trình mà về cơ bản là một cái gì đó như:Làm cách nào để lấy đối số dòng lệnh có độ dài không xác định trong Fortran?
program test
character(len=100) :: argument
call GET_COMMAND_ARGUMENT(1,argument)
print*, argument
end program test
Vấn đề ở đây là tôi cảm thấy đó là một chút nguy hiểm để thiết lập chiều dài tối đa của chuỗi lúc biên dịch. Một số đối số thường là các tệp có đường dẫn của chúng, vì vậy chúng có thể rất dài. Một giải pháp liên quan đến việc thiết lập độ dài tĩnh đến 1000 âm thanh như một giải pháp xấu. không có
Là một cách thanh lịch hơn trong Fortran để xác định một chuỗi có thể chứa một chuỗi các ký tự có chiều dài chỉ được biết đến tại thời gian chạy?
Cách tiếp cận của bạn tốt hơn nhiều, bằng cách nào đó tôi đã quên đối số này. –
Có lẽ cũng đáng chú ý rằng cách tiếp cận này cũng hoạt động cho 'get_environment_variable'. – francescalus
Cảm ơn, đây là sự trợ giúp tuyệt vời và thực sự giải quyết được câu hỏi.Tôi chỉ có một câu hỏi nhỏ, tại sao cần thiết 'phân bổ' (ký tự (some_length) :: đối số) thay vì 'phân bổ đơn giản hơn (đối số (some_length))' – Onturenio