우리 중 많은 사람들이 scanf 의 전통적인 용도를 알고 있습니다. 글쎄,여기에 덜 알려진 사실 중 일부입니다
우리가 필요로하는 입력의 일부만 읽는 방법? 예를 들어 정수 또는 플로트 뒤에 문자 만 포함하는 일부 입력 스트림을 생각해보십시오. 그리고 우리는 그 정수 또는 부유물 만 스캔해야합니다.
즉,
Input:”this is value100″,
Output:value read is100
Input:”this is value21.2″,
Output:value read is21.,/div>, &a);
printf
(
"Input value read : a = %d"
, a);
return
0;
}
,이제 아마도 우리는 알지 못한 것 앞의 문자는 그러나 우리는 확실히 알고 있는 마지막 값은 정수입니다., 마지막 값을 정수로 어떻게 스캔 할 수 있습니까?
아래 솔루션은 입력 문자열에 공백이없는 경우에만 작동합니다.,
, &a);
printf
(
"Input value read : a=%d"
,a);
return
0;
}
Explanation: The %*s in scanf is used to ignore some input as required., 이 경우 다음 공백이나 새 줄까지 입력을 무시합니다. 마찬가지로%*d 를 쓰면 다음 공백이나 새 줄까지 정수를 무시합니다. 위의 사실은 언뜻보기에 유용한 트릭으로 보이지 않을 수도 있습니다. 사용법을 이해하려면 먼저 fscanf()를 살펴 보겠습니다.
fscanf():파일에서 읽을 수있는 모든 clumpsy 구문에 지쳤습니까? 글쎄,fscanf 는 구조에 온다.
int fscanf(FILE *ptr, const char *format, ...)
fscanf 는 입력 스트림에서 읽는 대신 파일 포인터(ptr)가 가리키는 파일에서 읽습니다.
다음 텍스트 파일 abc 를 고려하십시오.,txt
NAME AGE CITYabc 12 hyderbadbef 25 delhicce 65 bangalore
이제 우리가 원하는 읽기 전시장의 위에 텍스트 파일을 무시하고 다른 모든 필드가 있습니다. 의 조합 fscanf 및 트릭 위에서 언급이 용이하게
출력:
CITYhyderbaddelhibangalore
동:의 단어 수 계산, 캐릭터와에서 라인을 사용하여 파일 fscanf!
이 기사는 Nikhil Chakravartula 가 기고 한 것입니다., 는 경우 다음과 같 GeeksforGeeks 및 참여하고 싶다면,당신은 또한 문서를 작성하고 메일로서 귀하의 문서 [email protected]. 시 기사에 나오는 GeeksforGeeks 메인 페이지 및 도움말 기타 괴짜입니다.피>