출저 : 프로그래밍 입문 사이트 ~bituse~ | http://bituse.info/cp/7


이번에는 C++ 문자열 출력에 대해 설명합니다. C에서 printf 함수와 puts 함수를 사용하여 문자열을 출력하고 있었습니다만, C++에서도 전용 함수가 있습니다.

다음 코드를 봐주세요.



#include 
#include 

int main(void)
{
	char test[30];

	std::cin >> test;

	printf("%s\n",test);

	std::cout << test << std::endl;
	
	return 0;
}



이렇게 하면, 문자의 입력을 요구하게 되므로 입력하면 해당 문자를 두 번 표시합니다. 이 코드 안의 std::cin이 입력 함수이고, std::cout가 출력 함수입니다. 또한 >>이 입력 연산자 <<이 출력 연산자라고 말합니다. 이 함수를 사용하기 위해서는 iostream을 포함(include) 해야 합니다. (.h 제외) 그럼 이 cin의 앞에 붙어있는 std::는 무엇일까요?

std는 네임 스페이스로, 그룹 조립을 위한 공간과 같은 것입니다. C++ 에서 전역 변수와 전역 함수는 같은 이름으로 정의할 수 없습니다. 하지만 이 네임 스페이스로 묶어주면, 그것을 제한하는 영역이 되므로 다른 곳에서도 같은 이름의 변수와 함수를 정의할 수 있습니다.

추가로 이번엔 cin이라는 함수가 std라는 네임 스페이스에 속해 있었습니다. 네임 스페이스에 속하는 함수는 콜론을 두 번(::) 쓰고 그 뒤에 함수 이름을 쓰는 것만으로도 액세스 할 수 있습니다. 그 cin과 함수와 함꼐 입력 연산자 >>를 쓰고, 오른쪽에 할당되는 변수를 써주고 있습니다. 마지막 std::endl이라고 써 있습니다만, 이것은 개행을 나타내는 것입니다. 이것을 쓰는 것만으로 줄 바꿈을 할당할 수 있습니다. 물론 출력 연산자도 필요합니다.


이것이 C++ 문자열 출력 방법입니다. 신경이 쓰인 사람도 있을 거라고 생각합니다만, std::는 매번 쓰기 귀찮지요? 이를 해소하는 방법이 있습니다. 글로벌 영역에

using namespace std;

라고 쓰는 것만으로도, std::cin라고 써야했던 함수를 cin로 쓸 수 있게 됩니다. 또한 cout, endl도 함꼐 쓸 필요가 없습니다. 만약 다른 함수에서 네임 스페이스 이름을 쓰는 것이 번거로우면, using namespace 네임_스페이스_이름;라고 쓰면 생략할 수 있습니다. 꼭 기억하시길 바랍니다.


이번은 여기까지.

다음은 string 형식에 대해 설명합니다.

'공부 > C/C++' 카테고리의 다른 글

(C++) STL에 대해서  (0) 2014.03.27
(C++) string 형식  (0) 2014.03.27
(C++) 가상 함수  (0) 2014.03.26
(C++) 클래스의 상속  (0) 2014.03.26
(C++) 클래스의 생성자와 소멸자  (0) 2014.03.26