다음: 입력 변환 구문, 이전: 그 밖의 출력 변환, 상위 문서: C 형식 입출력 함수 [차례][찾아보기]
형식 있는 입력을 읽는 scanf
, fscanf
, sscanf
함수가 있습니다. 이 세 함수에는 두 가지 꼴이 있습니다. 꼴 하나는 기록철의 벡터에서 자료를 뽑아내고, 다른 꼴은 보다 ‘C스럽습니다.’.
첫 번째 꼴은 틀로 기록철_식별자를 읽어 행렬 값을 되돌려줍니다.
선택 인수 크기는 읽을 자료 양을 지정하며, 아래 중 하나를 써도 됩니다.
Inf
최대한 읽어 열 벡터를 되돌려줍니다.
nr
원소를 nr개 만큼 읽어 열 벡터를 되돌려줍니다.
[nr, Inf]
가능한 많이 읽어 행이 nr개인 행렬을 되돌려줍니다. 읽은 원소 개수가 nr의 정수배가 아니면, 마지막 열을 0으로 메꿉니다.
[nr, nc]
원소를 nr * nc
개 만큼 읽어 행이 nr개인
행렬을 되돌려줍니다. 읽은 원소 개수가 nr의 정수배가 아니면, 마지막 열을 0으로 메꿉니다.
크기를 주지 않으면, Inf
로 가정합니다.
틀에서 문자 변환만 지정하면, 문자열을 되돌려줍니다.
읽는데 성공한 항목 개수는 개수에 되돌려줍니다.
오류가 발생하면 운영체제에 따른 오류 안내가 오류_문구에 포함되어 나옵니다.
두 번째 꼴은 틀로 기록철_식별자를 읽되, 틀에 있는 변환 규제자 낱낱을 각각 스칼라 값으로 되돌려줍니다. 이 꼴이 더 “C스럽고” 구형 옥타브와도 호환됩니다. 변환에 성공한 횟수는 개수에 되돌려줍니다.
틀 문자열에 관한 완전한 설명은 그누 옥타브 사용설명서의 형식 있는 입력 절을 참고하십시오.
이 함수는 fscanf
를 기록철_식별자에 stdin
을 넣어 부르는
것과 같습니다.
현재 scanf
를 대화형 풀그림에서 부르는 것은 유용하지 않습니다.
흐름 대신 문자열 문자열에서 문자를 가져온다는 점만 빼면 fscanf
와 비슷합니다.
문자열 끝 도달을 기록철 끝처럼 다룹니다. fscanf
가 되돌려주는 값에 더하여, 다음에 읽을 문자의 색인을
자리에 되돌려줍니다.
틀 문자열로 인수를 읽기 때문에 scanf
와
printf
가 겉으로 보기에는 비슷해 보입니다. 그러나 scanf
의 틀에 적는 변환 품목 구문이 printf
에
적는 것과 비슷해 보일지라도, scanf
의 틀 해석은 printf
의 기록란에 얽매인 형식보다 더
자유롭고 간단한 경향 일치에 방점을 둡니다. 예를 들어, 많은 scanf
변환은 입력한 기록철에
“공백”(빈칸, 긴빈칸, 새줄 포함)이 많으나 적으나 공백을 건너 뛰고, 수치 입력 변환에 정밀도가 규정되어 있지 않지만, 이름이 같은 출력
변환은 정밀도가 규정되어 있습니다. 대개 틀에 있는 공백이 아닌 문자는 입력 흐름에서 꼭 일치할 것을 요구합니다.
일치에 실패하면, scanf
는 바로 처음으로 일치하지 않은 문자를 흐름에서 다음에 읽을 문자로
남기고, 변환에 성공한 모든 항목을 내놓습니다.
형식 있는 입력 함수는 형식 있는 출력 함수처럼 자주 사용하지 않습니다. 형식 있는 입력 함수를 제대로 쓰려면 어느정도 노력이 필요하기 때문일 것입니다. 또한 일치 오류를 고치기 어려운 점도 한몫합니다.
다음: 입력 변환 구문, 이전: 그 밖의 출력 변환, 상위 문서: C 형식 입출력 함수 [차례][찾아보기]