반응형
scanf 함수
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | int main(void) { int n1; double n2; printf("정수 입력: "); scanf("%d", &n1); printf("실수 입력: "); scanf("%lf", &n2); printf("입력된 두 개의 데이터: %d, %f \n", n1, n2); return 0; } | cs |
1) scanf 함수에 대해
scanf함수의 %d는 키보드로부터 입력하는 값을 10진수 정수 int형으로 해석하겠다는 의미이다.
그리고 int형 변수 n1에 저장한다.
int형 데이터의 입력은 %d, 출력은 %d 이다.
double형 데이터의 입력은 %lf, 출력은 %f 이다.
2) scanf 함수와 printf함수의 비교
printf 함수를 호출할때는 int형 정수 데이터가 전달되어야 한다.
하지만 scanf 함수를 호출할 때에는 입력 받은 값을 저장할 변수의 이름 앞에 기호 &를 붙여준다.
변수의 이름 앞에 단항연산자 &를 붙이면 해당 변수의 주소값을 얻게 된다.
즉 scanf 함수를 호출할 때에는 int형 변수의 주소 값을 전달해줘야한다.
3) scanf 함수로 둘 이상의 데이터 입력 받기
scanf함수 호출시 전달하는 문자열 안에는 서식문자를 둘 이상 지정할 수 있다.
7행에서는 문자열에 공백이 있지만, 11행에서는 문자열에 공백이 없다.
이 공백은 아무런 의미가 없다.
하지만 입력할때는 스페이스,탭,엔터등의 공백을 주어 3개의 정수를 입력해줘야 한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | int main(void) { int n1, n2, n3; double d1, d2, d3; printf("세 개의 정수 입력: "); scanf("%d %d %d", &n1, &n2, &n3);//총 3개의 정수를 입력받는것 printf("입력된 정수 출력: %d, %d, %d \n\n", n1, n2, n3); printf("세 개의 정수 입력: "); scanf("%d%d%d", &n1, &n2, &n3);//공백없이도 3개 정수 입력받는것 printf("입력된 정수 출력: %d, %d, %d \n\n", n1, n2, n3); printf("세 개의 실수 입력: "); scanf("%lf %lf %lf", &d1, &d2, &d3);//총 3개의 실수를 입력받는것 printf("입력된 실수 출력: %f, %f, %f \n\n", d1, d2, d3); return 0; } | cs |
4) 데이터의 입력 구분을 위해 공백 이외의 문자 사용
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | int main(void) { int n1, n2; double d1, d2; printf("정수 | 정수: "); scanf("%d | %d", &n1, &n2); printf("입력 데이터 출력: %d, %d \n\n", n1, n2); printf("실수 / 실수: "); scanf("%lf / %lf", &d1, &d2); printf("입력 데이터 출력: %f, %f \n\n", d1, d2); return 0; } | cs |
7행에서 %d와 %d사이에 문자 | 가 삽입되었다.
따라서 이 경우에는 두개의 정수를 입력할때, 두 정수 사이에 반드시 | 문자가 삽입되어야 한다.
반응형
'BackEnd > C' 카테고리의 다른 글
삼항 연산자 (0) | 2019.03.03 |
---|---|
if~else문 (0) | 2019.03.03 |
함수와 관련된 기타 내용들 (0) | 2019.02.26 |
함수의 선언과 정의 (0) | 2019.02.26 |
다양한 함수의 예 (0) | 2018.12.18 |