본문 바로가기

DEVELOPMENT/C/C++

[C/C++] 여러종류의 입.출력 함수

printf와 scanf를 제외한 입 출력 함수들입니다.

 

 

  1. ystem("cls");

Clear Screen의 약자이며 이름 그대로 화면을 깔끔하게 지우고 커서를 화면 좌상단으로 옮긴다.

 

화면에 이미 출력된 내용을 지우고 새로운 내용을 출력하고자 할 때 이 명령을 사용한다.

 

 콘솔 화면은 일반적으로 가로로 80개의 문자를 표시할 수 있고 세로로 25줄을 출력할 수 있다.

 

윈도우즈의 콘솔은 설정하기에 따라 더 넓은 폭을 가질 수도 있고 스크롤도 가능하지만 여기서는 도스나 유닉스의 콘솔과 비슷하다고 생각하기로 하자.

 

콘솔은 80*25의 바둑판같은 좌표 공간이라고 할 수 있는데 각 위치는 x축과 y축의 좌표값을 가진다.

 

gotoxy 함수는 커서의 위치, 그러니까 다음 문자열이 출력될 좌표값을 바꾼다.

 

인수로 옮기고자 하는 x, y 좌표를 지정하면 커서가 이동하며 이어지는 출력은 이 위치로 나가게 된다.

 

현재 위치가 아닌 특정 위치에 출력하고 싶다면 출력 명령을 사용하기 전에 gotoxy로 원하는 좌표값을 지정한다.

 

다음 예제는 화면을 깨끗하게 지운 후 중앙에 문자열을 출력한다.

 

  1. #include <Windows.h>
  2. #include <stdio.h>
  3.  
  4. void gotoxy(int x,int y)
  5.  
  6. {  
  7.     COORD pos={x,y};
  8.     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
  9. }
  10.  
  11. void main()
  12. {
  13.      system("cls");
  14.      gotoxy(37,12);
  15.      printf("center\n");
  16. }

 


 

 

  1. puts("문자열")

puts 함수는 문자열만 출력할 때 사용한다.

 

printf로도 문자열을 출력할 수 있지만 puts는 서식을 다루지 않기 때문에 훨씬 더 간편하며 속도도 빠르다는 장점이 있다.

 

화면에 "korea"라는 문자열을 출력하고 싶다면 puts("korea")를 호출하면 된다.

 

puts는 문자열을 출력한 후 항상 개행을 하므로 \n을 일부러 붙이지 않아도 된다.

 

  1. gets(변수)

gets 함수는 문자열을 입력받아 인수로 주어진 변수에 저장하는데 gets(str)은 scanf("%s",str)과 유사하다.

 

그러나 scanf는 문자열을 공백에서 끊어 버리기 때문에 긴 문자열을 입력받을 수 없는데 비해 gets는 개행 코드 이전의 모든 문자를 입력받는다는 점이 다르다.