개발벤제마
5주차 본문
#include <stdio.h>
int main()
{
// "이름:한주헌 나이: 20 키:175.5"를 출력합니다.
printf("이름:한주헌 나이: 20 키:175.5\n");
// "이름: %s 반: %c 나이:%d 키:%lf" 형식의 문자열을 출력하고, 해당 위치에 "한주헌", 'B', 20, 175.5의 값을 대입하여 출력합니다.
printf("이름: %s 반: %c 나이:%d 키:%lf\n", "한주헌", 'B', 20, 175.5);
return 0; // 프로그램을 종료합니다.
}
#include <stdio.h>
int main()
{
// "나이 20"을 출력합니다.
printf("나이 20");
// "나이:20"을 출력합니다.
printf("나이:%d\n", 20);
return 0; // 프로그램을 종료합니다.
}
printf() 함수를 사용하는 일반적인 순서는 다음과 같습니다.
- 출력 형식 문자열 작성: printf() 함수를 사용하여 출력할 내용을 형식화된 문자열로 작성합니다. 이 형식화된 문자열은 화면에 출력될 텍스트와 형식 지정자들로 구성됩니다.
- 형식 지정자와 매개변수: 형식화된 문자열에는 형식 지정자들이 포함되어 있어야 합니다. 예를 들어, "%d"는 정수를 나타내는 형식 지정자이고, "%f"는 부동 소수점 수를 나타내는 형식 지정자입니다. printf() 함수에 전달되는 매개변수는 이러한 형식 지정자와 일치하는 데이터여야 합니다.
- printf() 함수 호출: 작성된 형식화된 문자열과 해당하는 매개변수들을 printf() 함수에 전달하여 화면에 원하는 형태로 출력합니다.
예를 들어:
c
int main() {
int age = 25;
float height = 175.5;
printf("나이: %d, 키: %f\n", age, height);
return 0;
}
위의 예제에서는 printf() 함수를 사용하여 "나이: 25, 키: 175.5"와 같은 형태로 출력합니다.
scanf 함수와scanf_s 함수의 기능적 차이
버퍼 오버플로우 방지 | 오버플로우 방지 기능이 없어, 버퍼 오버플로우 공격에 취약할 수 있음 | 버퍼 오버플로우를 방지하기 위해 보안을 강화함 |
보안성 | 사용자 입력에 대한 보안 취약점이 있을 수 있음 | 버퍼 오버플로우를 방지하여 보안 측면에서 더 안전함 |
함수의 반환값 | 반환값으로 성공적으로 입력받은 변수의 개수를 반환함 | 반환값으로 성공적으로 입력받은 변수의 개수를 반환하며, 버퍼 오버플로우 발생 시 에러코드를 반환함 |
함수의 사용법 | scanf 함수의 사용법은 간단하고 직관적임 | scanf_s 함수는 추가적인 버퍼 크기 인자를 요구하므로 사용법이 다소 복잡함 |