rueki
C++ 입출력 본문
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