C언어 복습하기 3회차 - 서식 입출력
이 글은 C programming : a modern approach를 바탕으로 공부한 내용을 정리한 것입니다.
오늘 공부할 내용은 서식 입출력에 관한 내용이다. printf
와 scanf
에 관한 내용을 다룰 것이다. 이번 챕터에서는 해당 함수들의 간단한 부분만 공부하고 나중에 다시 입출력에 관한 내용을 다룰 예정이다.
목차
3.1 printf
printf
함수는 서식 문자열_format string_이라고 불리는 문자열을 문자열의 특정 부분에 추가된 값과 함께 출력하는 기능을 수행한다.
printf(string, expr1, expr2, ...);
printf
가 호출되려면 서식 문자열과 출력을 할 때 삽입되어야하는 값을 공급해주어야 한다.
출력되는 값들은 상수일 수도, 변수일 수도, 혹은 매우 복잡한 표현식일 수도 있다. 서식 문자열은 일반 문자열과 %
로 시작되는 변환 규격_conversion specification_을 둘 다 포함할 수 있다. 변환 규격은 출력할 때 채워져야 하는 값을 대신하는 기호나 텍스트의 일부이다.
예시
int i = 10;
int j = 20
float x = 43.2892f;
float y = 5527.0f;
printf("i = %d, j = %d, x = %f, y = %f\n", i, j, x, y);
// 출력
// i = 10, j = 20, x = 43.289200, y = 5527.000000
주의할 점
C 컴파일러들은 서식 문자열에서의 변환 규격의 개수와 출력되는 것들의 개수가 같은지를 반드시 확인하지 않는다.
printf(%d %d\n", i);
i`의 값은 제대로 출력하고 아무런 의미없는 정수값을 출력할 것이다.
변환 규격의 개수보다 출력할 값의 개수가 더 많은 경우에는 변환 규격 개수만큼만 출력이 일어난다.
2.2 프로그램의 일반적 구조
Q & A
GCC의 약자는 뭔가요?
GNU C Compiler의 약자였는데 현재는 GNU Compiler Collection의 약자로 바뀌었다. GCC가 C 외에도 Ada, C, C++, Fortran, Java, Objective-C 같은 언어를 컴파일 하기 때문에
컴파일러는 주석을 어떻게 인식하나요?
a/**/b = 0;
예전에는 ab = 0;
으로 해석했지만 현재에는 a b = 0
으로 해석한다. 컴파일러는 주석을 공백으로 인식한다.
부동소수점 상수 끝에 f를 붙이는 이유
소수점을 포함하지만 f가 붙지 않은 상수는 double 형이 될 수 있습니다. double은 float 보다 2배 정밀도를 갖는 type으로 float이 저장할 수 없는 수가 할당되려고 할 수도 있기 때문
'프로그래밍 > C' 카테고리의 다른 글
[C] C언어 복습하기 2 - C 기초 with K.N.King (0) | 2021.07.19 |
---|---|
C언어 복습하기 1 - C언어란 with K.N.King (0) | 2021.07.15 |