003. INPUT/OUTPUT

Posted on by pkchan

003-01 // printf(); FUNCTION

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

+ 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-03 // FORMAT SPECIFIER

Format Specifier Description Supported Data types
%c Character char, unsigned char
%s String char *
%hd Signed Integer(Short) short
%hu Unsigned Integer(Short) unsigned short
%d Signed Integer int
%u Unsigned Integer unsigned int
%ld Signed integer(Long) long
%lu Unsigned Integer(Long) unsigned long
%o Octal representation of Integer short, unsigned short, int, unsigned int, long
%x or %X Hexadecimal repre- sentation of Unsigned Integer short, unsigned short, int, unsigned int, long
%f Floating point float
%lf Floating point double
%Lf Floating point long double
%e or %E Scienti c notation of float values float, double
%g or %G Similar as %e or %E float, double

003-04 // REVIEW EXERCISES

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

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

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

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

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

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

Leave a Reply