Programming/C++

[C++] std::cout, std::endl?

Jubil 2018. 1. 21. 17:04
반응형

C언에서 출력을 하고 싶을 때, 우리는 printf() 함수를 이용했습니다. C++에서는 std::cout을 이용합니다.

헤더 파일은 C++ 헤더인 iostream을 include 해줍니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
int main() {
    int kor, math, eng, sum;
    double avg;
 
    kor = 100;
    math = 98;
    eng = 79;
 
    sum = kor + math + eng;
    avg = sum / (double)3;
 
    std::cout << "총점 : " << sum << std::endl;
    std::cout << "평균 : " << avg << std::endl;
 
    return 0;
}
cs


국어, 수학, 영어 세 과목의 점수를 더해서 sum 변수에 넣고, 평균을 구해서 avg 변수에 넣습니다.


그리고 총점과 평균을 출력합니다.


std::cout << "총점 : " << sum << std::endl; 은 C언어의 printf("총점 : %d\n", sum); 과 같습니다.


std::cout은 출력을 해주고, std::endl은 개행 문자를 삽입해줍니다.



앞에 쓰는 std::는 std라는 namespace 안의 cout과 endl을 사용한다는 뜻입니다.




std::endl이 없다면 총점 : 277평균 : 92.3333으로 출력됐을 것입니다.




using?


std::를 계속 붙여주는 것은 번거로운 일입니다. 그래서 쓰는 키워드가 using인데요.


using namespace std; 라고 한다면,

main 함수 내에서 알아서 std 안에 존재하는 이름들을 참조할 수 있게 됩니다.


하지만 충돌할 가능성이 있으니 using std::cout; 이렇게 해주는 게 좋다고 합니다.




1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
 
int main() {
    int a[5= { 1,2,3,4,5 };
    char str[16= "Hello world!";
 
    cout << a[3<< endl;
    cout << str << endl;
 
    return 0;
}

cs



using 키워드를 이용해서 std를 불러왔습니다. 그래서 cout과 endl을 std:: 없이 쓸 수 있게 됩니다.




a[3]에 있는 4가 출력되고, 배열의 주소를 넘겨주니 문자열 "Hello world!"가 다 출력된 것을 볼 수 있습니다.

반응형

'Programming > C++' 카테고리의 다른 글

[C++] 함수  (0) 2018.01.21
[C++] 구조체  (0) 2018.01.21
[C++] 동적 할당  (0) 2018.01.21
[C++] 명시적 형변환  (0) 2018.01.21
[C++] std::cin?  (0) 2018.01.21