Language/C
[따배씨] 4.10 scanf() 함수의 사용법
migrationArc
2021. 5. 14. 10:40
따배씨 - 따라하며 배우는 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
실리콘 밸리의 프로그래머 : 네이버 블로그
안녕하세요! 홍정모 블로그에 오신 것을 환영합니다. 주로 프로그래밍 관련 메모 용도로 사용합니다. 강의 수강하시는 분들은 홍정모 연구소 카페로 오세요.
blog.naver.com
http://www.inflearn.com/course/following-c
홍정모의 따라하며 배우는 C언어 - 인프런 | 강의
'따배씨++'의 성원에 힘입어 새롭게 개발된 C 언어로 시작하는 프로그래밍 입문 강의입니다. '따배씨'와 함께 프로그래밍 인생을 업그레이드 해보세요., 따라하며 배우는 C언어 '따배씨++'의 성원
www.inflearn.com