scanf("%*s") 및 scanf("%*d") 형식의 식별자란 무엇입니까?
이 형식의 실제 용도는 무엇입니까?"%*"
스캔으로이 형식이 존재한다면, 그 이면에 어떤 목적이 있을 것입니다.다음 프로그램은 이상한 출력을 보여줍니다.
#include<stdio.h>
int main()
{
int i;
char str[1024];
printf("Enter text: ");
scanf("%*s", &str);
printf("%s\n", str);
printf("Enter interger: ");
scanf("%*d", &i);
printf("%d\n", i);
return 0;
}
출력:
manav@workstation:~$ gcc -Wall -pedantic d.c
d.c: In function ‘main’:
d.c:8: warning: too many arguments for format
d.c:12: warning: too many arguments for format
manav@manav-workstation:~$ ./a.out
Enter text: manav
D
Enter interger: 12345
372
manav@workstation:~$
printf의 경우 *를 사용하여 추가 파라미터를 통해 최소 필드 폭을 지정할 수 있습니다.printf("%*d", 4, 100);
필드 너비를 4로 지정합니다.필드 폭 4는 숫자 인쇄에 4자 미만이 필요한 경우 필드 폭이 채워질 때까지 공백 문자가 인쇄됨을 의미합니다.숫자가 지정된 필드 폭보다 더 많은 공간을 차지하는 경우 숫자는 잘라내지 않고 그대로 인쇄됩니다.
위해서scanf
*는 필드를 읽지만 무시함을 나타냅니다.이러한 경우, 예를 들어 다음과 같습니다. scanf("%*d %d", &i)
입력 "12 34"는 12를 무시하고 34를 정수 i로 읽습니다.
스타는 사양에서 읽은 텍스트를 무시하라는 플래그 문자입니다.glibc 매뉴얼에서 Qoute 하려면 다음 절차를 수행합니다.
이 사양에 대해 읽은 텍스트를 무시하도록 지시하는 옵션 플래그 문자 '*'입니다.scanf는 이 플래그를 사용하는 변환 사양을 찾으면 변환 사양의 나머지 부분에서 지시한 대로 입력을 읽지만 이 입력을 폐기하고 포인터 인수를 사용하지 않으며 성공한 할당 수를 늘리지 않습니다.
이 기능은 다음과 같이 사양 문자열에 여러 요소가 포함되어 있는 경우에 유용합니다. scanf("%d %*s %d", &i, &j)
를 위해"12 test 34"
- 여기서 i와 j는 정수이고 나머지는 무시합니다.
그*
변수를 입력하지 않고 입력을 건너뛰기 위해 사용합니다.그렇게scanf("%*d %d", &i);
두 개의 정수를 읽고 두 번째 정수를 넣는다.i
.
코드로 출력된 값은 초기화되지 않은 값일 뿐입니다.i
variable - scanf 콜에서 변경되지 않았습니다.
여기를 참조해 주세요.
선택적 시작 별표는 데이터가 stdin에서 검색되지만 무시됨을 나타냅니다. 즉, 해당 인수에 저장되지 않습니다.
인scanf("%*d",&a)
*
는 입력을 건너뜁니다.입력을 읽으려면 추가 정보를 사용해야 합니다."%d"
에scanf
. 예:
int a=1,b=2,c=3;
scanf("%d %*d %d",&a,&b,&c); //input is given as: 10 20 30
O/P:
a=10 b=30 and c=3; // 20 is skipped
다른 것을 사용하는 경우%d
예:scanf("%d %*d %d %d",&a,&b,&c); //input is given as: 10 20 30 40
a=10 b=30 c=40이다.
사용하시는 경우","
scanf에서는 다음 시간 이후 값이 취득되지 않습니다.%*d
즉,scanf("%d %*d,%d" &a,&b,&c)// 10 20 30
O/p: a=10b=2c=3c로 한다.
언급URL : https://stackoverflow.com/questions/2155518/what-are-scanfs-and-scanfd-format-identifiers
'programing' 카테고리의 다른 글
C++의 size_t와 int의 차이점은 무엇입니까? (0) | 2022.08.09 |
---|---|
Vue.js에서 v-model을 사용하기 위한 사용자 지정 양식 컨트롤을 쓰는 중 (0) | 2022.08.09 |
vuex getter에서 메서드 사용 (0) | 2022.08.09 |
C를 사용하여 Unix에서 파일을 복사하려면 어떻게 해야 합니까? (0) | 2022.08.09 |
Vue 컴포넌트 테스트 - 모의 상태 및 방법 (0) | 2022.08.09 |