Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- greedy
- 따라하며 배우는 C언어
- DP
- 생활코딩
- Algorithm
- server
- BASIC
- 정수론
- Algospot
- Math
- BOJ
- sorting
- web
- JavaScript
- 따라하면서 배우는 C언어
- programmers
- udemy
- C언어
- 인프런
- 종만북
- dfs
- php
- 백준
- C
- BFS
- 따배씨
- Python
- Cleancode
- String
- graph
Archives
- Today
- Total
몽상실현개발주의
[따배씨] 4.10 scanf() 함수의 사용법 본문
따배씨 - 따라하며 배우는 C언어
4강 문자열과 형식 맞춘 입출력
4.10 scanf() 함수의 사용법
/* multiple inputs with blank separators */
#include <stdio.h>
int main(){
int i;
float f;
char str[30];
scanf("%d %f %s", &i, &f, str); // Note % is asent in fron of str
// 123 456 hello hi
printf("%d %f %s\n", i, f, str);
// 123 456.000000 hello
return 0;
}
- 빈칸을 기준으로 read, 한 단어씩 입력 가능
- over 된 입력에 대한 처리 X
/* character */
#include <stdio.h>
int main(){
char c;
scanf("%c", &c);
printf("%i\n", c);
// 32
return 0;
}
- 공백도 문자로 처리
- 빈칸 하나의 SACII code = 32
/* Unsigned as signed */
#include <stdio.h>
int main(){
unsigned i;
scanf("%i", &i);
// -123
printf("%i\n", i);
// -123
return 0;
}
- unsigned로 선언된 변수를 signed로 입력받을 시 signed로 저장됨
- unsinged로 선언하여도 scanf를 통해 저장할때는 signed로 저장하기 때문에 가능
- 사용하지는 말자!
- unsinged로 선언하여도 scanf를 통해 저장할때는 signed로 저장하기 때문에 가능
/* Unsigned as unsigned */
#include <stdio.h>
int main(){
unsigned i;
scanf("%u", &i);
// -1024
printf("%u\n", i);
// 4294966272
return 0;
}
- unsinged로 선언된 변수를 unsigned 형태로 입력 받았기 때문에 정상출력 X
/* floating point numbers */
#include <stdio.h>
int main(){
double d1 = 0.0;
double d2 = 0.0;
float d3 = 0.0;
scanf("%lf", &d1);
scanf("%f", &d2);
scanf("%f", &d3);
printf("%f %f %f\n", d1, d2, d3);
// 3.140000 0.000000 3.140000
return 0;
}
- 8byte double 형을 4byte float으로 입력받았기 때문에 size가 맞지 않아 정상입력 X
/* Width */
#include <stdio.h>
int main(){
char str[30];
scanf("%5s", str);
// abcde
printf("%s\n", str);
// abcd
return 0;
}
- %5s : 5글자 까지만 입력받음
/* h modifier */
#include <stdio.h>
int main(){
char i1, i2;
scanf("%hhd %hhd", &i1, &i2);
// 1 246
printf("%i %i\n", i1, i2);
// 1 0
return 0;
}
/* integer with characters */
#include <stdio.h>
int main(){
int i;
scanf("%i", &i);
// 123ab456
printf("%i\n", i);
// 123
return 0;
}
- int형 입력 중 문자를 만나면 scanf 함수가 중지
- 입력받은 숫자만 저장
/* j modifier */
#include <stdio.h>
int main(){
intmax_t i; // long long type
scanf("%ji", &i);
printf("%ji", i);
return 0;
}
이 글의 모든 사진과 내용의 출처는 홍정모 교수님께 있음을 알려드립니다.
http://blog.naver.com/atelierjpro
http://www.inflearn.com/course/following-c
'Language > C' 카테고리의 다른 글
[따배씨] 5.2 대입 연산자와 몇 가지 용어들 Object, L-value, R-value, 피연산자 ~ 5.3 더하기, 빼기, 부호 연산자들 (0) | 2021.05.16 |
---|---|
[따배씨] 5.1 반복 루프와의 첫 만남 Loop (0) | 2021.05.16 |
[따배씨] 4.9 printf() 함수가 인자들을 해석하는 과정 (0) | 2021.05.14 |
[따배씨] 4.8 변환 지정자의 수식어들 (0) | 2021.05.14 |
[따배씨] 4.7 pritnf() 함수의 변환 지정자 (0) | 2021.05.13 |
Comments