rueki

C++ 입출력 본문

C,C++ 기초 및 자료구조

C++ 입출력

륵기 2020. 9. 16. 10:16
728x90
반응형
#include <iostream>
#include <string>
using namespace std;

int main()
{
	cout << "이름을 입력하세요 : ";
	string name; // 변수 : 입력한 내용을 전달받기위한 장소, 변수 이름과 타입을 선언
	//string : 변수 타입
	// name은 중괄호 안에서만 존재하는 local variable -> 다른데서 사용하지 못함
	// 변수 선언하고 값을 정하지 않으면 암묵적 초기화가 되어진다.
	cin >> name; // 문자열을 읽어서 name이라는 객체에 저장
	cout << "안녕하세요" << name << endl;
	return 0;
}

cin - 입력 명령어

cout - 출력 명령어

 

 

출력 작업을 최적화 하고자 버퍼라는 데이터 구조 사용
버퍼에 저장한 내용 출력 후 , 버퍼 지운다.

 

실행 결과

- 버퍼를 비우는 방법
1. 버퍼가 가득 차면 라이브러리는 버퍼 자동 비움
2. 표준 입력스트림으로 입력 내용 요청받으면 라이브러리는 즉시 버퍼를 비운다
3. 사용자가 명시한 코드로 버퍼 비우기 가능

 

 

- 테두리를 출력해보기

#include <iostream>
#include <string>
using namespace std;

int main()
{
	cout << "이름을 입력하세요 : ";
	string name; // 변수 : 입력한 내용을 전달받기위한 장소, 변수 이름과 타입을 선언
	//string : 변수 타입
	// name은 중괄호 안에서만 존재하는 local variable -> 다른데서 사용하지 못함
	// 변수 선언하고 값을 정하지 않으면 암묵적 초기화가 되어진다.
	cin >> name; // 문자열을 읽어서 name이라는 객체에 저장
	
	const std::string greeting = "hello," + name + "!";
	const string spaces(greeting.size(), ' ');
	const string second = "* " + spaces + " *";
	
    // second변수의 크기만큼 문자열 값을 복사해서 저장
	const string first(second.size(), '*');

	cout << endl;
	cout << first << endl;
	cout << second << endl;
	cout << "* " << greeting << " *" << endl;
	cout << second << endl;
	cout << first << endl;
	
	
	return 0;
}

const : 상수를 정의할 때 사용, 소멸할 때 까지 값을 변경하지 않겠다.

second 변수에 사용한 "+" 는 문자열끼리 결합해서 사용이 되었는데, 이는 연산자의 오버로딩으로

피연산자 타입에 따라 실행하는 연산이 다르다.

 

그러나 아래와 같이 사용하면 에러가 뜨는 것을 확인할 수가 있다.

const std::string exclam = "!";
const std::string message = "hello" + ", world" + exclam;

문자열 변수 간의 오버로딩 연산 외에, 문자끼리의 연산은 안되는것 같다.

728x90
반응형

'C,C++ 기초 및 자료구조' 카테고리의 다른 글

우선순위 큐(priority Queue)  (0) 2020.10.09
생성자와 소멸자  (0) 2020.10.06
함수 포인터  (0) 2020.07.26
매개변수의 기본값  (0) 2020.07.21
함수 오버로딩(Function Overloading)  (0) 2020.07.18
Comments