scanf)
및 출력(printf
)#include <stdio.h>
int main(void) {
int age = 12; //자료형 명시
printf("%d\n", age);
// 변수에 할당된 값 수정 가능
// 이미 선언된 변수는 자료형 명시하지 않음
age = 13;
printf("%d\n", age);
return 0;
}
print
함수는 줄바꿈을 자동으로 해줌.
따라서 굳이 줄바꿈 기호 /n
을 사용할 필요 없음.age = 12 # 변수의 자료형을 명시하지 않음
print("%d" % age) # %d는 정수형 값을 받는 포맷 코드
# 변수에 할당된 값 수정 가능
# 심지어 자료형이 달려져도 됨
age = 'twelve'
print("%s" % age) # 하지만 문자열을 받는 %s 포맷 코드를 사용해도 됨.
#include <stdio.h>
int main(void) {
// 여러 줄 주석은 /* ... */로 감싸야 함
// 정수형 변수 예제
/* int age = 12; //자료형 명시
printf("%d\n", age);
// 변수는 수정 가능
// 이미 선언된 변수는 자료형 명시하지 않음
age = 13;
printf("%d\n", age); */
// 한 줄 주석
printf("1\n");
// printf("2\n"); // 2는 주석처리됨
printf("3\n");
return 0;
}
# 정수형 변수 예제
# 여러 줄 주석은 세 개의 큰 따옴표(""")를 이용하여 감싸야 함
"""
age = 12 # 변수의 자료형을 명시하지 않음
print("%d" % age) # %d는 정수형 값을 받는 포맷 코드
# 변수에 할당된 값 수정 가능
age = 13
print("%s" % age) # 하지만 문자열을 받는 %s 포맷 코드를 사용해도 됨.
"""
# 한 줄 주석
print("1")
# print("2") // 2는 주석처리됨.
print("3")
#include <stdio.h>
int main(void) {
// 실수형 변수 예제
float f = 46.5f; // float 자료형 뒤에 f 붙혀줄 것
printf("%f\n", f);
printf("%.2f\n", f); // 소수점 자릿수 지정
double d = 4.428;
printf("%.3lf\n", d);
printf("%lf\n", d);
return 0;
}
# 실수형 변수 예제
f = 46.5 # 자료형과 f 기호를 명시할 필요 없음
print("%f" % f)
print("%.2f" % f) # 소수점 자릿수 지정
d = 4.428
print("%.3lf" % d) # float 와 double 구분 없음
print("%lf" % d)
# 문자열의 자릿수를 지정하고자 할 때 점 앞에 정수 지정
# 예를 들어 10자리수로 표현하고자 할 때
# 주의: 자릿수는 소수점과 소수점 이하 숫자도 포함
pi = 3.14
print("%10.3f" % pi)
# 빈자리를 0으로 채울 수 있음
print("%010.3f" % pi)
#include <stdio.h>
int main(void) {
// 상수: const 라는 지정자 사용!
const int YEAR = 2000;
printf("태어난 년도: %d\n", YEAR);
// 상수 수정은 오류 발생시킴
// YEAR = 2001;
return 0;
}
#include <stdio.h>
int main(void) {
// 연산
int add = 3 + 7; // 10 (계산된 후에 저장됨)
printf("3 + 7 = %d\n", add);
// %d의 반복 횟수만큼 정수를 지정해야 함.
printf("%d + %d = %d\n", 30, 79, 30 + 79);
printf("%d * %d = %d\n", 30, 79, 30 * 79);
return 0;
}
# 연산
add = 3 + 7 # 10 (계산된 후에 저장됨)
print("3 + 7 = %d" % add)
# 문자열의 여러 곳에 값을 지정하기 위해 포맷 기호 여러 개 사용 가능
# %d의 반복 횟수만큼 정수를 지정해야 함.
print("%d + %d = %d" % (30, 79, 30 + 79))
print("%d * %d = %d" % (30, 79, 30 * 79))
scanf_s
는 Visual Studio이 사용하는 컴파일에서만 사용될 수 있음.scanf_s
를 지원하지 않음.scanf
를 대신 사용하면 됨.scanf_s
관련 자세한 설명: scanf_s 사용하기 참조&
(앰퍼샌드) 기호를 붙혀서 사용함에 주의&
기호 사용하지 않음.#include <stdio.h>
int main(void) {
// scanf
// 키보드 입력을 받아서 저장
int input;
printf("값을 입력하세요: ");
scanf("%d", &input);
printf("입력값: %d\n", input);
return 0;
}
input
함수가 키보드 입력을 받아서 되돌려 줌.input
함수의 인자로 문자열을 지정하여 어떤 값을 입력해야 하는지 정보 제공할 수 있음.print
함수를 미리 사용할 필요 없음.# 키보드 입력받기 함수: input
# 따라서 동일한 이름의 변수를 사용하지 말아야 함.
# 입력 받은 값을 저장할 변수를 미리 선언할 필요 없음
input_value = input("값을 입력하세요: ")
print("입력값: %s" % input_value)
input
함수가 되돌려주는 값(리턴값)은 항상 문자열 자료형임.따라서 아래와 같이 %d
를 사용하면 오류 발생
숫자 12를 입력하더라도 문자열 "12"
로 인식됨.
반면에 %d
는 정수를 기대함. 따라서 오류 발생.
input_value = input("값을 입력하세요: ")
print("입력값: %d" % input_value)
#include <stdio.h>
int main(void) {
// 여러 개의 값을 입력받기
int one, two, three;
printf("3개의 정수를 입력하세요: \n");
scanf("%d %d %d", &one, &two, &three);
printf("첫번째 값: %d\n", one);
printf("두번째 값: %d\n", two);
printf("세번째 값: %d\n", three);
return 0;
}
# 여러 개의 값을 입력받기
three_ints = input("3개의 정수를 입력하세요: ")
one, two, three = three_ints.split()
print("첫번째 값: %s" % one)
print("두번째 값: %s" % two)
print("세번째 값: %s" % three)
%s
대신에 %d
를 사용하면 오류 발생.int
함수를 이용하여 정수형으로 형변환을 한 후에 %d
사용 가능# 여러 개의 값을 입력받기
three_ints = input("3개의 정수를 입력하세요: ")
one, two, three = three_ints.split()
print("첫번째 값: %d" % int(one))
print("두번째 값: %d" % int(two))
print("세번째 값: %d" % int(three))
char
: 문자 자료형
문자열 자료형
#include <stdio.h>
int main(void) {
// 문자(한 글자),
char c = 'A';
printf("c: %c\n", c);
char d;
scanf("%c", &d);
printf("d: %c\n", d);
return 0;
}
#include <stdio.h>
int main(void) {
// 문자열(한 글자 이상의 여러 글자)
// 문자열의 길이 지정 필요
// 즉, 문자들의 배열(array) 자료형에 해당
char str[256];
// 문자열을 입력받을 때 & 기호 사용하지 않음
// sizeof 함수는 지정된 배열의 크기 확인해줌
scanf("%s", str, sizeof(str));
printf("%s\n", str);
return 0;
}
input
함수가 담당.input
함수는 키보드를 사용하여 Enter 키가 눌리기 전까지 입력된 모든 문자를
하나의 문자열로 되돌려줌.string = input("문자열을 입력하세요: ")
print("입력된 문자열: %s" % string)
str
은 Python에서 문자열 자료형을 가리키는 지정자임. 따라서 변수 이름으로 사용하면 안됨.string
을 변수 이름으로 사용함.#include <stdio.h>
int main(void) {
// 프로젝트
// 경찰관이 범죄자의 정보를 입수 (조서 작성)
// 이름? 나이? 몸무게? 키? 범죄명?
char name[256];
printf("이름이 뭐에요? ");
scanf("%s", name, sizeof(name));
int age;
printf("몇 살이에요? ");
scanf("%d", &age);
float weight;
printf("몸무게는 몇 kg이에요? ");
scanf("%f", &weight);
double height;
printf("키는 몇 cm이에요? ");
scanf("%lf", &height);
char what[256];
printf("무슨 범죄를 저질렀어요? ");
scanf("%s", what, sizeof(what));
// 조서 내용 출력
printf("\n\n--- 범죄자 정보 ---\n\n");
printf(" 이름 : %s\n", name);
printf(" 나이 : %d\n", age);
printf(" 몸무게 : %.2f\n", weight);
printf(" 키 : %.2lf\n", height);
printf(" 범죄 : %s\n", what);
return 0;
}
# 경찰관이 범죄자의 정보를 입수 (조서 작성)
# 이름? 나이? 몸무게? 키? 범죄명?
name = input("이름이 뭐에요? ")
age = input("몇 살이에요? ")
weight = input("몸무게는 몇 kg이에요? ")
height = input("키는 몇 cm이에요? ")
what = input("무슨 범죄를 저질렀어요? ")
# 조서 내용 출력
print("\n--- 범죄자 정보 ---\n")
print(" 이름 : %s" % name)
print(" 나이 : %d" % int(age))
print(" 몸무게 : %.2f" % int(weight))
print(" 키 : %.2lf" % int(height))
print(" 범죄 : %s" % what)