1. 주석문 사용법
- 한 줄
"//" 앞에 단어를 사용
- 여러 줄
"/*" 로 시작해 "*/"로 끝나도록 함
사용 예)
// hello world
/* 안
녕
친
구
들 */
사용 예)
int main() { // int는 C++ 의 반환값이다.
return 0; // 사용안해도 자동으로 사용되며, main함수를 종료한다는 뜻이다.
}
C++에 데이터를 입력하고 출력하려면 필요한 패키지다.
코드 최상단에 사용해주면 된다.
사용 예)
std::cout << "hello\n"; /*화면에 Hello를 출력하고 다음 줄로 넘어감
1. << 연산자
<<는 "=" 으로 대입한다는 의미를 가진다.*/
2. std::cout
std::는 C++에서 정한 "표준이름공간"으로,
이름을 라이브러리에서 사용할 때(함수명 지정, cout 등) std::를 사용해주어야 한다.
(중복된 이름을 방지하기 위해 어떤 라이브러리에서 사용하는가를 지정하는 것이다.)
3. using 지시어
using std::cout을 사용해주면 cout에 대해서 std::를 써주지 않아도 된다.
using std::cout;
cout<< "Hello World"
4. <<연산자가 2개이상일 때
먼저 나온 << 부터 처리 후, 이후의 <<를 실행한다.
사용 예)
cout << "Hello World\n" << "I Love C++"
위 연산자는 왼쪽의 [Hello World + 줄바꿈] 을 실행후
cout에 "I Love C++"을 사용해주도록 하는 문장이다.
5. endl이란?
\n과 같은 기능이나, 차이점은 문자열을
버퍼에서 비우는 작업 후 즉시, 출력한다는 점이다.
이 덕분에 \n은 더 빠른 출력을 할 수 있으나,
버퍼에 그대로 문자열이 계속 쌓인다는 특징이 존재한다.
* https://yechoi.tistory.com/48 참조
사용 예)
cout << "Hello World" << endl
name space란? 같은 이름을 가진함수를 원치 않는 라이브러리에서 가져오는 것을 피하기 위해 라이브러리별로 이름을 달고 구분시키는 것.
사용 예)
using name space std;
std라는 이름의 이름 공간을 사용하겠다.
따라서 std와 같은 이름을 가진 함수명을 작성해서는 안된다.
CIN이란? 키보드로 부터 문자열을 입력받는 기능이다. 이 때 공백을 구분자로 하여 여러개의 변수를 입력받을 수도 있다.
사용 예)
#include <iostream> // >>, cin, cout 기능을 사용하기 위한 패키지
using namespace std;
int main(){
cout << "너비를 입력해 주세요" ;
int width;
cin >> width; // 키보드로 부터 width변수에 데이터를 입력 받는다.
cout << "높이를 입력해 주세요";
int height;
cin >> height; // 키보드로 부터 height 변수에 데이터를 입력 받는다.
int area
area = width * height;
cout << "면적은" << area << "입니다." << endl;
}
사용 예2) 두개 연속으로 입력받기
cin >> width >> height // 두개 변수를 스페이스바 간격으로 입력받기
입력 터미널에 아래와 같이 입력한다.
30 40
출력결과
"면적은" 120 "입니다."
띄어쓰기를 포함한 문장을 사용시 띄어쓰기하기 전까지의 데이터만 입력받는다.예를 들어 "나는 치킨이 좋다"를 cin으로 변수에 입력하면 "나는"이 저장된다.
아까 CIN이 스페이스바를 포함한 문장을 입력받지 못한다고 기술 하였다. 그렇다면 스페이스 포함한 문자열을 어떻게 입력 받아야 할까?
C-string이란? 널(\0 또는 0)로 끝나는 char 배열을 뜻하며 주로, c언어와의 호환성을 위해 사용한다.
char 배열1[6] = {'A','B','C','D','E','F'}
char 배열2[6] = {'A','B','C','D','E','/0'}
위 배열 1과 2의 차이점은, 1의 경우 단순 문자열로써, C++에서 각종 오류를 일으킨다는
것이다. 따라서 반드시 널(\0, 0)이 1개이상 포함되도록 1칸의 여유를
주어야만 배열을 이용한 문자열 처리가 가능하다.
(문자열을 이용한 다른 프로그램들이 /0을 문자열을 끝내는 명령어로 인식하기 때문이다.)
char name[10]
cin >> name;
터미널 입력
이름은 김철수다. (공백, .포함 총 9글자 -> 가능하지 않을까? X)
cin으로 입력시, 이름은 까지가 name에 저장된다.
각 글자가 char형(1바이트)으로 이루어진 배열에 저장된다.
cin.getline()을 이용하면 공백포함된 문자를 입력 받을 수 있다.
사용 예)
#include <iostream>
using namespace std;
int main() {
cout << "주소를 입력하세요 >>";
char address[100];
cin.getline(address, 100);
cout << "주소는" << address << "입니다" << endl
#include<strign>
using namespace std;
String name;
cin >> name;
위처럼 String라이브러리를 이용해 문자열을 바로 이용할 수 있다.
#include <iostream>
#include <cstring> //C-String 배열 사용
using namespace std;
int main() {
//로또 추첨 프로그램
int i;
int t;
int lotto[10];
int checkBox[50];
for(i=0; i<6; i++){
cin >> lotto[i];
checkBox[i] = lotto[i];
if (lotto[i] <= 45 && lotto[i] > 0) {
for (t=0; t<i; t++) {
if(checkBox[t] == lotto[i]) {
cout << "이미 당첨된 번호가 중복으로 입력되었습니다. 다시 입력하세요";
i= i-1;
break;
}
}
}
else {
cout << "45 초과된 수나 음수를 입력하셨습니다. 숫자를 재입력 해주세요.";
i = --i;
}
}
cout << "당첨번호는";
for (i=0; i<6; i++) {
cout << lotto[i]<< " ";
}
cout << "입니다.";
//(보너스)추첨완료 후 내가 6자리 뽑기
int dozun[6];
for(i=0; i<6; i++) {
cin >> dozun[i];
}
int n=0;
for(i=0; i<6; i++){
for(t=0; t<i+1; t++){
if(lotto[i] == dozun[t]){
n = n+1;
}
}
}
if (n==6){
cout << "총" << n <<"개 맞췄습니다.";
cout << "당첨입니다.";
}
else {
cout << "총" << n <<"개 맞췄습니다.";
cout << "당첨되지 않았습니다.";
}
}
이름, 주소(대구광역시 달서구 신당동...) 입력 받고 출력하시오.
패스워드를 입력받고, 새로 입력한 패스워드를 다시 입력받아 패스워드를 올바로 입력했는지에 대한 검증하는 과정을 수행하시오. (단, 패스워드는 영문자, 숫자가 사용되도록)
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char password[11];
char address[100];
char name[100];
char newPassWord1[100];
char newPassWord2[100];
//이름 입력받기
cout<<"이름은 무엇입니까?>>";
cin >> name;
cout<<"이름은" << name << "입니다."<<endl;
cin.ignore(); // 배열에 "/0"공간이 없을 때 cin 버퍼내용을 비우는것이 가능하나, 사용 추천X
//주소 입력받기(띄어쓰기가 포인트)
cout<< "주소를 입력해 주세요>>" ;
cin.getline(address,100);
cout<<"주소는" << address <<"입니다."<<endl;
//비밀번호 입력받아 입력한 값과 비교하여 맞는지 확인하기
cout << "비밀번호를 입력하세요." << endl;
while(true) {
cout << "비밀번호>>";
cin >> password;
//비밀번호가 정확할 때 변경 기능
if(strcmp(password, "C++") == 0) { //두 문자열이 일치하는지 확인하는 명령어 0이면 일치, 1이면 불일치
cout << "기존 비밀번호가 정확합니다." << endl;
cout << "새 암호를 입력하세요>>";
//재확인 기능
cin >> newPassWord1;
cout << "새 암호를 다시 입력하세요>>";
cin >> newPassWord2;
//변경할 비번 == 재확인 비번일 때
if(strcmp(newPassWord1,newPassWord2) == 0){
cout << "비밀번호가 정확히 일치하여 변경에 성공 합니다.";
strcpy(password, newPassWord1); // password = newpassword1와 같은 뜻
break;
}
//변경할 비번 != 재확인 비번일 때
else
cout << "비밀번호가 일치하지 않아 변경에 실패하였습니다."<<endl;
}
else
cout << "잘못된 비밀번호 입니다." << endl;
}
}