All Articles

표준입출력함수

표준입출력함수

표준출력함수

  • printf(): 화면에 여러 종류의 자료를 출력 (모든 자료 형태 가능)
  • putchar(): 화면에 문자 1개 출력
  • puts(): 화면에 문자열 출력

표준입력함수

  • scanf(): 키보드를 통해 여러 종류의 자료를 입력받음
  • getchar(): 키보드를 통해 문자 1개 입력받음
  • gets(): 키보드를 통해 문자열 입력받음

printf()

  • 기능: 주어진 출력 양식으로 자료 출력
  • 형식: printf("출력 형태", 변수1, 변수2, ...);
  • 사용 예
int a = 1;
int b = 2;
printf("a = %d, b =%d", a, b);
a= 1, b=2 

scanf()

  • 기능: 주어진 양식으로 자료를 입력받아 저장된 기억공간(변수)에 저장
  • 형식: scanf("입력 양식", &변수1, &변수2, ...);
  • 사용 예
char c;
char d;
printf("문자를 입력하시오: ");
scanf("%c %c", &c, &d);
printf("c = %c, d = %c", c, d);
문자를 입력하시오: 

k j 입력 후 엔터

c = k, d = j 

  • scanf() 함수 사용 시 참고사항

    • 변수 앞에 주소를 의미하는 &를 붙여야 한다.
    • scanf() 함수 입력 양식에 “%문자”가 아닌 다른 문자가 들어가면 안 된다. (예 - scanf("a = %d", &a); 안됨)
    • 하나 이상의 자료를 한번에 입력할 수 있는데, 각 자료 구분은 공백으로 한다. 입력할 때도 공백으로 구분해준다.
    • Visual Studio에서는 scanf()와 몇몇 함수를 권장하지 않는 함수로 지정하고 해당 함수가 포함된 소스 코드를 컴파일하지 않는다. 따라서 scanf()를 사용하기 위해서 아래 코드를 도입부에 포함해야만 컴파일이 진행된다.

      #pragma warning(disable:4996)

getchar()

  • 기능: 한 문자를 키보드를 통해 입력받음
  • 형식: getchar();
  • 사용 예
char e;
printf("문자 하나를 입력하시오: ");
e = getchar();
printf("e = %c", e);
문자 하나를 입력하시오: 

E 입력 후 엔터

e = E 

putchar()

  • 기능: 한 문자를 화면에 출력
  • 형식: `putchar(‘문자’);
  • 사용 예
char f='A';
putchar(f);
putchar(f+1);
putchar('\n');
putchar('B');
putchar('B'+2);
AB
BD

문자 ‘A’는 ASCII 코드로 변환하면 정수 65에 해당한다. 65에 1을 더해주면 66인데, 역으로 변환하면 문자 ‘B’다. 따라서 ‘AB’가 출력된다.

개행문자 \n으로 줄바꿈 후 ‘B’를 출력하고 이어서 2를 더해주므로 마찬가지 원리로 ‘D’가 다음으로 출력된다.

  • putchar() 함수 사용 시 참고사항

    • 함수 인자로 들어갈 수 있는 문자는 정수형 변수, 정수형 상수, 문자형 변수, 문자, 수식

gets()

  • 기능: 문자열을 키보드로부터 입력받음
  • 형식: gets(변수)
  • 사용 예
char g[10];
printf("문자열을 입력하시오: ");
gets(g);
printf("g = %s", g);
문자열을 입력하시오: 

abcd efg 입력 후 엔터

g = abcd efg
  • scanf() 함수와 차이점
char g[10];
printf("문자열을 입력하시오: ");
scanf("%s", g);
printf("g = %s", g);
문자열을 입력하시오: 

abcd efg 입력 후 엔터

g = abcd

scanf() 함수는 공백으로 데이터를 구분하기 때문에 변수 1개만 선언된 상태에서는 첫 번째 데이터(abcd)만 저장한다.

puts()

  • 기능: 문자열을 화면에 출력한다.
  • 형식: puts(변수)
  • 사용 예
char s1[10] = "Computer";
char s2[10] = "Science";

puts(s1);
puts(s2);
Computer
Science
  • printf() 함수와 차이점
char s1[10] = "Computer";
char s2[10] = "Science";

printf("%s", s1);
printf("%s", s2);
ComputerScience

C언어에서는 문자열 끝에 무조건 null 문자 \0을 출력하는데, puts() 함수는 null 문자를 개행문자 \n으로 바꿔서 출력한다. 따라서 개행문자를 따로 써주지 않아도 줄바꿈이 된다.

반면에 printf() 함수는 개행문자를 써주지 않으면 줄바꿈이 되지 않으므로 옆에 붙어서 출력된다.