<C와 C++의 차이점>
C언어는 절차지향 프로그램이라면, C++은 객체지향 프로그램이다.
ex)
C: 기상->세수->밥->등교 (실행될 문법들을 순차적으로 작성)
C++: 클래스 생성(붕어빵 틀), 클래스로부터 객체 생성(속성+동작)
<헤더파일>
C에서는 입출력 헤더파일로 #include <stdio.h>를 사용했다.
C++은 객체지향 언어이기 때문에 입출력 기능+클래스&객체 기능이 탑재된 클래스
iostream을 include 한다. --> #include <iostream>
c++에서 사용하는 ios클래스는 입력만 가능한 istream클래스와 출력만 가능한 ostream클래스로 나눠진다.
편의를 위해 입/출력 기능이 한꺼번에 가능한 iostream을 만들어 이를 불러와 편리하게 사용하는 것이다.
*iostream의 namespace: std
//namespace: 여러개의 전역적인 라이브러리, 함수 혹은 클래스 등이 중복되어 컴파일 사이의 문제를 야기할 수 있으므로, 이들을 구분하여 중복되지 않도록 하는 키워드를 의미함.
<입출력 문법>
1)표준출력스트림: std::cout
#include <iostream>
{
std::cout<<"hello_world!"<<std::endl;
return 0;
}
iostream의 namespace는 std인 것을 기억하자.
std:: cout --> std라는 namespace를 갖는 공간에 소속된 cout 객체를 불러와 문구를 출력한다는 뜻이다.
cout 객체를 사용할때는 ostream 클래스에서 정의한 "<<" 연산자를 사용한다.
2)표준입력스트림: std::cin
#include <iostream>
int main(void)
{
char name[30];
std::cin>>name;
return 0;
}
std::cin -->출력을 담당하는 cout객체에서 원하는 변수에 값 입력을 담당하는 cin객체로 이름이 바뀐 것 뿐이다.
문법 구조는 위와 동일하다.
단, 여기서 주의할 점은, cin은 tab, space, enter와 같은 공백문자를 입력받지 못하고 오로지 단발성 문자, 숫자 값만 입력 받을 수 있다.
만약 공백 문자열 또한 입력받고 싶다면?
아래와 같이 작성하면 된다.
#include <iostream>
int main(void)
{
char name[30];
std::cin.getline(name,sizeof(name));
return 0;
}
//만약 "판다 귀요미"를 입력했다면 공백 포함하여 "판다 귀요미"가 변수 name안에 저장됨.
//std::cin을 사용할 경우에는 공백 이하 문자가 모두 잘리고 "판다"만 저장된다.
지금, 간단한 코드를 작성하면서 계속 iostream의 namespace인 std를 앞에 선언해줘야 한다.
이는 매우 번거롭기 때문에 "using namespace std;"를 한출 추가해주면, std를 생략해도 코드가 제대로 작동한다.
이를 사용하여 이름과 구매 금액을 입력받고, 구매 금액의 1%를 포인트로 적립하여 이를 알려주는 프로그램을
간단히 작성해보자.
#include <iostream>
using namespace std; //std::cout --> cout, std 생략해도 됨. 가독성 좋아짐.
int main(void)
{
//구매금액의 1%를 포인트로 적립해주는 프로그램, 적립 포인트 출력하기
char name[30];
cout << "성함과 전화번호를 입력하세요\n";
//cin >> name;
//cin은 enter, space, tab키 등의 문자를 모두 무시한다. 오로지 단발성 문자, 숫자 값만 입력을 받음.
//만약 그 외의 것 또한 입력받고 싶다면?
cin.getline(name, sizeof(name));
cout << "구매 금액을 입력하세요.";
int caltot,calpoint;//c언어는 변수 선언을 반드시 위에서 한번에 해줘야 하지만 c++은 중간에서 지정해도 됨.
cin >> caltot;
calpoint = caltot * 0.01;
cout << name<< "님, " << calpoint << "점의 포인트가 적립되었습니다.\n";
return 0;
}
##오늘 공부 요약 코드##
// C-->순차적(절차지향) 프로그램
//기상->세수->밥->등교->공부->놀기->하교->학원
//#include <stdio.h>
//C++-->객체지향 프로그램
//클래스 & 객체 (속성+동작)->이름, 학번, 학과, 전화번호, 씻기, 걷기
//#include <iostream>, c의 표준 입출력 기능+클래스&객체 기능 추가된 헤더파일
//namespace: 여러개의 전역적인 라이브러리, 함수 혹은 클래스 등이 중복되어 컴파일 사이의 문제를 야기할 수 있으므로, 이들을 구분하여
//중복되지 않도록 하는 키워드를 의미한다.02
#include <iostream>
using namespace std; //std::cout --> cout, std 생략해도 됨. 가독성 좋아짐.
int main(void)
{
//표준출력스트림(std::cout)
std::cout << "hello c++ ~^^"<<std::endl;//std(namespace) 공간에 소속된 cout객체라는 의미, endl=다음줄로 넘어가세요
std::cout<<"wonderful c++" << std::endl;
//표준입력스트림(std::cin), 모두 buffer 공간을 갖고있음.
//구매금액의 1%를 포인트로 적립해주는 프로그램, 적립 포인트 출력하기
char name[30];
cout << "성함과 전화번호를 입력하세요\n";
//cin >> name;
//cin은 enter, space, tab키 등의 문자를 모두 무시한다. 오로지 단발성 문자, 숫자 값만 입력을 받음.
//만약 그 외의 것 또한 입력받고 싶다면?
cin.getline(name, sizeof(name));
cout << "구매 금액을 입력하세요.";
int caltot,calpoint;//c언어는 변수 선언을 반드시 위에서 한번에 해줘야 하지만 c++은 중간에서 지정해도 됨.
cin >> caltot;
calpoint = caltot * 0.01;
cout << name<< "님, " << calpoint << "점의 포인트가 적립되었습니다.\n";
return 0;
}