Menu

fscanf 예제

  • Uncategorized

fscanf() 함수는 파일에서 문자 집합을 읽는 데 사용됩니다. 파일에서 단어를 읽고 파일 끝에 EOF를 반환합니다. formatSpec이 숫자와 문자 지정기의 조합을 포함하는 경우 fscanf는 각 문자를 해당 숫자와 동등한 것으로 변환합니다. 이 변환은 형식이 모든 숫자 값을 명시적으로 건너뛰는 경우에도 발생합니다(예: formatSpec은 `%*d %s`). fscanf는 입력 스트림에서 읽는 대신 FILE 포인터(ptr)가 가리키는 파일에서 읽습니다. 줄 19와 20에는 “fscanf() 함수 테스트” 및 “Name:ttRolltMarksn”을 콘솔에 인쇄하는 두 개의 printf() 문이 있습니다. 콘솔에서 사용자가 입력한 직원 정보를 저장하는 파일 처리 예제를 살펴보겠습니다. 우리는 직원의 ID, 이름 및 급여를 저장하려고합니다. 연습 : fscanf를 사용하여 파일의 단어, 문자 및 줄수를 계산하십시오! fscanf() 함수는 파일에서 서식이 지정된 입력을 읽는 데 사용됩니다. scanf() 함수처럼 작동하지만 표준 입력에서 데이터를 읽는 대신 파일에서 데이터를 읽습니다. 사실 fscanf() 함수의 인수대부분은 scanf() 함수와 동일하지만, 파일 포인터가 충분할 정도의 추가 인수만 필요하다는 점을 제외하면. 성공시 이 함수는 읽은 값의 수와 오류 또는 EOF 또는 -1을 반환하는 파일의 끝을 반환합니다.

이제 위의 텍스트 파일의 도시 필드만 읽고 다른 모든 필드를 무시합니다. fscanf와 위에서 언급 한 트릭의 조합은 쉽게 fscanf 형식Spec 변환 지정에 추가 된 지정된 텍스트를 무시이 작업을 수행합니다. 하나 이상의 변환 지정자의 문자 벡터 또는 문자열 스칼라로 지정된 파일의 데이터 필드 형식입니다. fscanf가 파일을 읽을 때 formatSpec에서 지정한 형식에 데이터를 일치시키려고 시도합니다. MATLAB® 파일 데이터를 formatSpec에 일치시킬 수 없는 경우 A는 숫자 또는 문자 배열일 수 있습니다. A의 클래스는 fscanf가 처리를 중지하기 전에 읽는 값에 따라 달라집니다. 22-26 줄에서 while 루프는 fscanf() 함수와 함께 사용되어 파일의 서식이 지정된 데이터를 읽고 변수 이름, roll_no 및 marks에 저장합니다. 그런 다음 printf() 문은 파일에서 읽은 데이터를 인쇄하는 사용자입니다.

fscanf()는 EOF가 발생할 때까지 계속 읽습니다. 조건이 false되고 제어가 루프에서 나오는 동안 파일의 끝이 발생하면. formatSpec에 숫자 지정자만 포함된 경우 A는 숫자입니다. sizeA 인수를 지정하면 A는 지정된 크기의 행렬입니다. 그렇지 않으면 A는 열 벡터입니다. 입력에 크기보다 작은 값이 포함되어 있는 경우 fscanf는 0으로 A를 패드합니다. A는 파일의 숫자 값을 포함하는 벡터입니다. 개수는 fscanf가 다섯 개의 값을 읽었음을 나타냅니다. 우리가 필요로하는 입력의 일부만 읽는 방법은 무엇입니까? 예를 들어 정수 또는 float 뒤에 문자만 포함하는 일부 입력 스트림을 고려해 보십시오. 그리고 우리는 정수 또는 부동만 스캔해야합니다. 즉 , “이것은 값 100”, 출력 : 값 읽기는 100한 번에 읽을 숫자 또는 텍스트 문자의 최대 수를 지정하려면 백분율 문자 다음에 숫자를 삽입합니다.

Search