// c언어
#include <stdio.h>
int main() {
int num;
printf("첫번째 C프로그래밍입니다.\n");
printf("정수를 입력하세요.");
scanf("$d", &num);
printf("입력된 정수는 %d입니다.\n", num);
return 0;
}
// cpp
#include <iostream>
using namespace std;
int main() {
int num;
cout << "첫번째 C프로그래밍입니다.\n";
cout << "정수를 입력하세요.";
cin >> num;
cout << "입력된 정수는" << num <<"입니다.\n";
return 0;
}
전처리기(C++ preprocessor)에게 내리는 지시
데이터를 전송하는 SW 모듈
⇒ 각 스트림은 버퍼 존재 ( 데이터를 모아서 한 번에 전달)
#include
-헤더파일 위치 : 컴파일러가 설치된 폴더 ⇒ 기본적으로 제공되는 헤더
#include "header file"
-헤더파일 위치 : 현재 디렉토리 ⇒ 직접 만든 헤더
cin 객체
표준 C++ 입력 스트림 객체
변수의 데이터 형에 따
'>>' 연산자 (스트림 추출 연산자) 사용
단, 문자열을 입력할 땐, 공백이 없어야 함
because >>연산자는 빈칸이 입력될 때까지 하나의 입력으로 처라하므로
입력받을 데이터보다 더 큰 데이터 입력
자료형이 다른 데이터 입력
<해결방법>
cin.fail() // cin 오류 시 1을 반환 아니면 0 반환
cin.clear() // cin 내부 상태 flag 초기화 -> cin 기능 정상 작동하도록 함
cin.ignore(최대확인글자수, '문자') // 최대확인글자수까지 입력 버퍼 삭제 if. '문자'를 만나면 그 문자까지 지우고 stop
cout 객체
\n
: <<연산자가 cout 스트림 버퍼에 단순 사입\n
을 넣고 데이터 즉각 출력 명령 ⇒ 함수이므로 속도 slowstd::cout << "hello" << '\n';
std::cout << "hello" << endl;
identifier 충돌 해결 → 서로 다른 소스코드에서 동일 명을 사용할 경우 해결하기 힘들기에
⇒ 각 개발자의 자신만의 공간 생성하여 다른 개발자의 공간과 구분
namespace :: identifier
namesapce PODONG { //PODONG이라는 namespace 공간 생성
... // 이 곳에 선언된 모든 이름은 KIM namespace에 생성된 이름
}
C++ 표준에서 정의한 namespace
⇒ 헤더파일에 선언된 모든 identifier이 std 공간 안에 존재
ex. cout, cin, endl ...
보통 std:: 생략 → using namespace std;
/* Example 1*/
using std::cout; // cout에 대해서만 std:: 생략
...................................
cout << "Hello" << std::endl; // std::cout에서 std:: 생략
/* Example 2*/
using namespace std; // std 이름 공간에 선언된 모든 이름에 std:: 생략
...................................
cout << "Hello" << endl; // std:: 생략
#include <iostream>
using namespace std;
int main() {
// 각각 10, 8, 16진법을 사용한다
int decimal = 41; // 10진수
int octal = 041; // 8진수
int hexadecimal = 0x41; // 16진수
// 출력
cout << "41 = " << decimal;
cout << "041 = " << octal;
cout << "0x41 = " << hexadecimal;
return 0;
}
변수가 사용되기 전에만 정의하면 OK
되도록이면 변수 선언은 한 곳에 정의하는 것이 good!