일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- ios개발자
- 42ecole
- unary operator
- 짝수와 홀수
- 추적하기
- string from
- 라피신
- 플레이그라운드 문제풀이
- binary operator
- 스위프트공부
- 이노베이션아카데미
- 프로그래머스
- ==
- ios
- ternary operator
- 값올리기
- !==
- 두 정수 사이의 합
- 42에꼴
- c언어
- 프로그래머스 문제 풀이
- 스위프트
- playgrounds
- ===
- string(from)
- Swift
- 플레이그라운드
- swiftlanguage
- html
- 맥
- Today
- Total
minError
비전공자의 C언어 학습기 [ scanf ] 본문
개인적으로, 학습한 내용으로
궁금한 부분들을 구글에서 검색후, 정리한 내용을 토대로 작성되어 졌습니다.
scanf() 함수는 C언어의 표준 입력 함수로, 사용자로부터 다양한 데이터를 다양한 서식에 맞춰 입력받을 수 있게 해줍니다.
scanf() 함수의 f는 formatted의 약자이며, 서식화된 입력을 받는다는 의미입니다.
이 함수는 입력받은 데이터를 어떤 서식으로 변환할지 서식 지정자(format specifier)를 통해 직접 지정할 수 있습니다.
C언어에서 데이터를 입력받으려면 입력받고자 하는 데이터의 타입에 해당하는 크기의 메모리를 우선 할당받아야 합니다.
이처럼 데이터를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간을 변수(variable)라고 합니다.
앞선 예제에서 scanf() 함수에 포함된 '&'기호는 주소 연산자(&)라고 합니다.
이 주소 연산자는 입력받은 데이터를 뒤에 나오는 변수에 저장하라는 의미입니다.
서식 지정자의 동시 사용
여러 개의 서식 지정자를 동시에 사용하여, 여러 데이터를 서로 다른 서식으로 한 번에 입력받을 수 있습니다.
단, 이때에는 서식 지정자의 순서와 저장할 변수의 순서가 반드시 같아야 합니다.
입력받는 데이터의 구분은 공백(줄 바꿈, 탭, 띄어쓰기 등)을 기준으로 삼습니다.
#include <stdio.h>
int main(void)
{
int num01, num02;
printf("두 개의 정수를 입력하세요 : ");
scanf("%d %d", &num01, &num02);
printf("입력하신 두 정수를 8진수로 나타내면 %o와 %o가 되고,\n", num01, num02);
printf("입력하신 두 정수를 16진수로 나타내면 %x와 %x가 됩니다.\n", num01, num02);
return 0;
}
double형 실수의 입력
scanf() 함수로 float형 실수를 입력받을 때는 서식 지정자로 '%f'를 사용하면 됩니다.
하지만 double형 실수를 입력받을 때는 printf() 함수에서처럼 '%f'를 사용하면 안 됩니다.
scanf() 함수로 double형 실수를 입력받을 때는 반드시 '%lf' 서식 지정자를 사용해야 정확한 값으로 입력받을 수 있습니다.
#include <stdio.h>
int main(void)
{
float num01;
double num02;
printf("두 개의 실수를 입력하세요 : ");
scanf("%f %f", &num01, &num02);
printf("입력하신 두 실수는 %f와 %f입니다.\n", num01, num02);
printf("입력받은 두 실수 중 두 번째 double형 변수에는 전혀 다른 값이 저장되었습니다.\n\n");
printf("다시 한 번 두 개의 실수를 입력하세요 : ");
scanf("%f %lf", &num01, &num02);
printf("입력하신 두 실수는 %f와 %f입니다.\n", num01, num02);
printf("이번에는 두 실수 모두 제대로 저장되었습니다.\n");
return 0;
}
scanf?
키보드로 숫자 등을 입력받을 때 이용하는 함수
형식 지정자 %d 는 printf 함수 때와 마찬가지로 10진수로 변환합니다.
그리고 printf 함수와는 달리 실인수로 전달할 변수명 앞에 &을 붙여야 합니다.
'Study-ing > C' 카테고리의 다른 글
C언어 문제 풀이 [ int형 변수 ] (0) | 2020.02.20 |
---|---|
C언어 문제 풀이 [ 정수값 출력 ] (0) | 2020.02.19 |
비전공자의 C언어 학습기 [ printf ] (0) | 2020.02.17 |
비전공자의 C언어 학습기 [ include ] (0) | 2020.02.07 |
Hello World (0) | 2020.01.28 |