백준 #6 [C++] 1001. 표준입출력과 뺄셈연산

K Choi·2022년 1월 15일
0

백준

목록 보기
6/37
post-thumbnail

#1000 문제

C 코드

#include <stdio.h>
int main(){
    int A, B;
    scanf("%d%d", &A, &B);
    printf("%d", A-B);
    return 0;
}

C++ 코드

#include <iostream>
using namespace std;
int main(){
    int A, B;
    cin >> A >> B;
    cout << A-B << endl;
    return 0;
}

C++은 아직 친해지는 중(1000번 소스코드 참고해서 작성!)

표준 입출력

  • 표준 입력: 키보드를 통해 입력하는 것
  • 표준 출력: 모니터에서 볼 수 있도록 터미널 등에서 데이터를 출력하는 것

C와 C++ 둘다 표준입출력을 지원하는데
백준 1000과 1001 소스코드에서 보다시피 둘의 방식이 조금 다릅니다.

C++의 iostream

C에선 printf, scanf 함수를 사용하기 위해
상단에 #include <stdio.h>를 작성함으로써
stdio.h 을 include해줍니다.

C++에서 이 stdio.h 역할을 하는 헤더파일이 iostream입니다.

이때, C++에서는 사용자 정의 헤더를 제외한
표준 헤더 파일들은 모두 '.h'를 사용하지 않습니다.
즉, iostream과 iostream.h는 서로 다른 헤더파일입니다.

cin

: C++의 iostream 헤더파일 안에 있는 표준 입력 기능을 하는 객체로
다음과 같은 형태로 사용됩니다.

std::cin >> 변수명;

-여기서 'std::'는 namespace
-'변수명'에는 입력한 값을 저장할 변수의 이름을 넣어주기

사용 예시

#include <iostream>
int main(void){
    int a;
    std::cin >> a;
    return 0;

cout

: C++의 표준 출력 기능을 하는 객체로 다음 형태로 사용됩니다.

-문자열(string), 숫자(number), 문자(character)를 포함한 여러 다양한 정보들의 출력 방법을 알고 있는 미리 정의된 객체로, C++에서 출력에 사용됩니다.

std::cout << 출력 내용(or 변수 이름) << std::endl

-'std::endl'은 iostream에 포함된 객체로 개행기능과 출력 스트림을 모두 내보내는 역할
-'<<'표시가 나타내는 방향: 정보의 흐름을 상징
cf. '프로그램이 메시지를 출력한다.'고 말하는 것보다 '출력 스트림에 문자열을 삽입한다.'고 말하는 것이 인상적

사용 예시

#include <iostream>
int main(void){
    char *s = "K";
    int a = 20;
    
    std::cout << "Hi, I'm" << s << " and I'm" << a << "years old." std::Endl;
    return 0;
}

-> 출력: Hi, I'm K and I'm 20 years old.

표준 입출력: C vs. C++

C와 C++의 표준입출력 방식의 가장 큰 차이
:사용자가 저장하는 변수의 데이터 형식을 신경써야하는지

C의 경우 printf와 scanf 모두 변수의 자료형을 사용자가 알고 있어야 합니다. 하지만 C++의 cin과 cout은 사용자가 변수의 자료형을 알지 못해도 사용할 수 있습니다.

C vs. C++: 표준 입력

정수형 변수에 표준 입력값을 저장할 때 int a;

C의 경우 scanf("%d", &a);
변수 a의 주소 안에 정수 데이터를 저장,
사용자가 a가 int형 변수임을 알고 있어야 합니다.

C++의 경우 std:: cin << a;
변수의 자료형을 몰라도 됩니다.

C vs. C++: 표준 출력

다음 변수를 출력할 때 char *s = "가나다";

C의 경우 printf("%s", s);
사용자가 변수 s 안에 문자열이 저장되어 있음을 알고 있어야 합니다.

C++의 경우 std::cout << s << std::endl
사용자가 변수 s의 자료형을 모르고 있어도 됩니다.

profile
mbeCoder

0개의 댓글