>

Fortran을 배우고 있습니다. 글쎄요, 배우겠다고 생각했기 때문입니다. 그러나 *의 목적이 인쇄, 읽기 등에 무엇인지에 대한 정보는 전혀 없습니다.

program main
    print *, "Hello, world!"
end program main

이 pyzwyz의 목적은 무엇입니까 ? 나는 약간의 연구를했지만 제대로 이해하지 못한다고 생각합니다. 실제로 * 의 요점을 알 때까지 계속 배우기를 원하지 않습니다. .

내가 찾은 것에서 나는 그것이 일종의 형식 지정 자라고 생각하지만, 그것이 무엇을 의미하는지 이해하지 못하며 심지어 내가 옳은지 전혀 모른다. 내가 찾은 모든 자습서는 콘솔에 인쇄하기 위해 쓰는 것이지만 * 가 아닌 것을 말해줍니다.  실제로 의미합니다.

*
  • 답변 # 1

    형식 지정 자라는 것이 맞습니다.

    IO와 관련된 위키 페이지에는 다음과 같은 페이지가 있습니다.

    와이즈 비즈

    The second * specifies the format the user wants the number read with

    에 대해 이야기 할 때  성명서. 이것은 read 에 적용됩니다  그리고 write  진술도.

    와이즈 비즈

    그들이주는 예는

    print
    
    

    소수점 앞뒤에 2 자리의 실수를 읽는다. 따라서 실수를 인쇄하는 경우 다음을 사용하십시오.

    For fixed point reals: Fw.d; w is the total number of spaces alloted for the number, and d is the number of decimal places.

    둥근 출력을 얻으려면

    이 예제에서는 텍스트를 인쇄하기 때문에 특별한 서식이 없습니다. 또한 형식 지정자를 REAL :: A READ(*,'(F5.2)') A 로두면  기본 형식을 실수 등에 적용합니다.

  • 답변 # 2

    PRINT '(F5.2)', A  statement는 출력을 특수한 장소 (화면이라고 가정)로 형식화합니다. 이 출력에 사용되는 형식을 지정하는 세 가지 방법이 있습니다. 질문에서와 같이 이들 중 하나는 * 를 사용하고 있습니다. .

    와이즈 비즈  형식 지정자는 형식화 된 출력이 소위목록 지정출력임을 의미합니다. 반대로, print  문은 목록 지정 입력이됩니다. 용어가 소개되었으므로 여기에서 다른 많은 질문을 찾을 수 있습니다. 목록 지향 입력/출력은 잠재적으로 놀라운 결과를 초래합니다.

    일반적으로 형식 지정 항목은 입력/출력 목록에서 항목을 형식화하는 방법을 나타냅니다. 실수를 쓰는 경우 출력의 정밀도 또는 과학적 표기법 사용 여부를 나타내는 형식 항목을 사용합니다.

    질문에서 문자 변수를 쓸 때 출력 필드의 너비를 지정하여 빈 패딩 또는 부분 출력이 있는지 여부를 지정할 수 있습니다. 우리는 할 수 있었다

    *
    
    

    다양한 효과를 제공하는

    [ * 와 같은 리터럴 문자 상수 사용  형식을 제공하는 다른 방법 중 하나입니다.]

    그러나 우리는 가질 수 없었습니다

    read
    
    

    형식이 출력 항목에 맞지 않기 때문에

    목록 지정 출력은 위의 경우와 다릅니다. 대신 (여기에서 Fortran 2008 초안 표준에서 인용)이

    와이즈 비즈

    주된 효과, 그리고 목록 지향이 그렇게 편리한 이유는 프로그래머가 발송물에 적합한 형식을 만들기 위해 노력할 필요가 없다는 것입니다.

    출력리스트가리스트 지정 출력에서 ​​처리되고 실제 값이 나타나면 마치 프로그래머가 해당 값에 적합한 형식을 지정한 것처럼 보입니다. 다른 유형도 마찬가지입니다.

    그러나 여기서 중요한 것은 "적절한 형식"입니다. 최종 사용자는 print '(A20)', "Hello, world!" print '(A5)', "Hello, world!" print '(A)', "Hello, world!" 를 말하지 않습니다  또는 '(A)' . 후자 대신 컴파일러는 너비, 정밀도 등을 위해 "합리적인 프로세서 종속 값"을 선택합니다. [ "왜 이렇게 많은 공백이 있습니까?"와 같은 질문으로 이어집니다.] 출력 제한은 예를 들어 Fortran 2008 10.10.4에 나와 있습니다.

    그래서 print '(F12.5)', "Hello, world!" ! A numeric format for a character variable  합리적인방식으로 다음 사항을 인쇄하십시오. 다음과 같이 출력을 제공하더라도 어떻게할지 선택하지 않을 것입니다.

    allows data editing according to the type of the list item instead of by a format specification. It also allows data to be free-field, that is, separated by commas (or semicolons) or blanks.

    대신

    A5
    
    

    확실히 같은 공간을 확보하는 것에 대해 불평하지 않습니다

    F12.5
    
    

    대신

    *
    
    

    예를 들어, 목록 지향의 경우 (이 답변 이외의 경우를 제외하고) 출력에 초기 공백이 나타납니다.

    와이즈 비즈 5*0 1 2

  • 이전 javascript - 크기 조정시 하이 차트에 렌더링 된 이미지 이동
  • 다음 c++ - __device__ 클래스 멤버 함수가 장치 변수의 값을 변경 한 후 장치에서 호스트로 복사 할 때 cudaMemcpy 오류