[C언어] 003. 입력과 출력

Posted on by pkchan
003-01 // printf(); FUNCTION

printf 함수는 큰따옴표 안의 문자열을 출력합니다.
printf 함수는 출력시에, 큰따옴표 뒤의 인자들을 각각의 서식 문자에 맞게 순서대로 치환하여 출력해줍니다.

Format SpecifierDescriptionSupported Data types
%cCharacterchar, unsigned char
%sStringchar *
%hdSigned Integer(Short)short
%huUnsigned Integer(Short)unsigned short
%dSigned Integerint
%uUnsigned Integerunsigned int
%ldSigned integer(Long)long
%luUnsigned Integer(Long)unsigned long
%lldSigned integer(Long Long)long long
%lluUnsigned Integer(Long Long)unsigned long long
%oOctal representation of Integershort, unsigned short, int, unsigned int, long
%x or %XHexadecimal repre- sentation of Unsigned Integershort, unsigned short, int, unsigned int, long
%fFloating pointfloat
%lfFloating pointdouble
%LfFloating pointlong double
%e or %EScienti c notation of float valuesfloat, double
%g or %GSimilar as %e or %Efloat, double

또한 큰따옴표 안에서 특별한 서식, 예를 들면 줄바꿈을 한다거나, 따옴표를 출력하는 등의 표현을 위해 특수문자(Escape Sequences)가 존재합니다.

Escape SequencesCharacter
\b0x08Backspace
\f0x0CFormfeed
\n0x0ANewline (Line Feed)
\r0x0DCarriage Return
\t0x09Horizontal Tab
\\0x5CBackslash
\’0x27Single quotation mark
\”0x22Double quotation mark
\?0x3FQuestion mark

+ integer type

/*
example 003-01
C language printf function
*/

#include <stdio.h>

int main (void) {

          int num = 20;

          printf("num의 값은 %d진수로 %o.\n",8,num);
          printf("num의 값은 %d진수로 %d.\n",10,num);
          printf("num의 값은 %d진수로 %x.\n",16,num);

          return 0;

}

+ floating-point types

/*
example 003-02
C language printf function
*/

#include <stdio.h>

int main (void) {

          float num = 3.141592f;
          double num2 = 3.141592;

          printf("변수 num의 값은 %f입니다.\n",num);
          printf("변수 num2의 값은 %f입니다.\n",num2);
          printf("%f는 실수입니다.",1.0); //실수를 직접 대입할 때는 소수점을 써줘야 합니다.

          return 0;

}

+ charater type

/*
example 003-03
C language printf function
*/

#include <stdio.h>

int main (void) {

          char dig = 'a'; // 문자는 ' ', 문자열은 " "를 사용합니다.

          printf("변수 dig의 값은 %c입니다.\n",dig);
          printf("변수 dig의 값은 %d입니다.\n",dig); // ASCII코드값이 출력됩니다.

          return 0;

}

+ floating-point types

/*
example 003-04
C language printf function
*/

#include <stdio.h>

int main (void) {

          int a = 20;
          double b = 3.141592;

          printf("a : %5d\n",a); // 5자리에 맞추어 출력
          printf("a : %-5d\n",a); // 5자리에 맞추어 왼쪽정렬
          printf("b : %.2f\n",b); //소수점 이하 두자리까지 출력
          printf("b : %-5.2f\n",b);
          
          return 0;

}
003-02 // scanf(); FUNCTION

scanf 함수는 콘솔(키보드)로부터 데이터를 입력받습니다. printf 함수와 비슷 하지만 scanf 함수는 printf 함수가 모든 정수형 데이터를 %d로 출력하고 실수 형 데이터를 %f로 출력했던 것과는 다르게 각각의 자료형마다 정확한 서식 문자 를 사용해야 합니다. 또한 큰따옴표 뒤에 따라오는 인자는 입력받은 데이터가 저 장될 변수의 주소(&)입니다.

/*
example 003-05
C language scanf function
*/

#include <stdio.h>

int main (void) {

          char number1;
          int number2;
          double number3;

          printf("char형 변수의 값을 입력하세요 : ");
          scanf("%c",&number1);
          printf("char형 변수는 %c입니다.\n",number1);

          printf("int형 변수의 값을 입력하세요 : ");
          scanf("%d",&number2);
          printf("int형 변수는 %d입니다.\n",number2);

          printf("double형 변수의 값을 입력하세요 : ");
          scanf("%lf",&number3);
          printf("double형 변수는 %f입니다.\n",number3);

          return 0;

}
003-05 // REVIEW EXERCISES

1. 사용자로부터 정수를 입력받아 입력받은 값과 메모리상의 주소를 출력하세요.

정수를 입력하세요. : 8
변수에 대입된 값은 8, 주소는 0x0a8799

2. 사용자로부터 문자를 입력받아 입력받은 문자와 ASCII값을 출력하세요.

문자를 입력하세요. : G
G의 아스키코드 값은 71입니다.

3. 두개의 실수를 입력받아 변수에 대입된 두 값을 서로 바꾸고 출력하세요.

num1에 첫번째 실수를 입력하세요. : 4.87
num2에 두번째 실수를 입력하세요. : 3.61
바꾼후에 num1의 값은 3.61입니다.
바꾼후에 num2의 값은 4.87입니다.

댓글 남기기