사용자가 읽을 문자열에 공백이 있으면 Fortran에서 read (별표, 별표)를 사용하면 작동하지 않는 것 같습니다. 사용자가 문자열을 입력하면 전용 "안녕하세요,"입력에 저장됩니다, "안녕 내 이름은 홍길동입니다"Fortran에서 공백이있는 문자열 읽기
character(Len = 1000) :: input = ' '
read(*,*) input
; 다음 코드를 고려 공간을 제외한 모든 것은 무시됩니다. 내 가정은 컴파일러는 "Hello"가 첫 번째 인수이고 "my"가 두 번째이므로 다른 단어를 캡처하기 위해 read (,) input1, input2 , input3 ... 등등.이 접근 방식의 문제점은 각 입력에 대해 큰 문자 배열을 생성해야하고 정확히 몇 단어를 입력해야 하는지를 알아야한다는 것입니다. 이 주위에 어떤 방법이 있습니까 ?? 실제로 모든 문장, 공백 및 모든 것을 읽는 일부 함수는 무엇입니까? 많은 감사합니다!
read (*, a)는 올바른 구문이 아닙니다 ... 형식 지정자는 괄호와 따옴표, read (*, '(a)') 또는 형식 명령문에 있어야하며 줄 번호를 통해 인용해야합니다. –
맞습니다. 나는 나의 대답을 업데이트했다. 감사. –
또한 Fortran의 형식 지정자가 C의'sscanf'와 정확히 동일하지 않다는 점을 지적하고자합니다. 몇 가지 점에서는 상당히 비슷하지만 일반적으로는 충분히 다릅니다. 괜찮은 개요 [여기] (http://www.oc.nps.edu/~bird/oc3030_online/fortran/io/io.html) 또는 [여기] (http://www.cs.mtu.edu)를 찾을 수 있습니다. /~shene/COURSES/cs201/NOTES/chap05/format.html). – jvriesem