티스토리 뷰

C++

C++ 기초

킹갓제네럴충무공 박트리 2017.04.24 00:42

** 본문은 C에 대한 기본적인 이해가 있음을 가정하고 작성하였습니다.


기본적으로 a+b연산을 하는 코드는 다음과 같다.




헤더파일은 C의 헤더파일을 모두 사용할 수 있고 거기에 추가적으로 stl 컨테이너들도 사용할 수 있다.

using namespace std; 문장은 c++에서 사용되는 문법으로 이름공간중 std라는 이름공간을 그냥 사용하겠다는 뜻이다.

이 문장이 없다면 std 이름공간에 포함된 cin이나 cout함수는 std::cin과 std::cout 등과 같은 방법으로 사용해야 한다.

이러한 타이핑의 귀찮음을 없애기 위해 위 문장을 헤더파일 밑에 선언한다.


<iostream> 헤더파일은 cin, cout 등 c++에서의 기본 입출력 함수및 기타 등등을 포함하는 기본적인 헤더파일이다.

cin은 입력 함수이다. 별도의 입력타입을 설정해주지 않아도 자동으로 판단하여 입력받는다.

cout은 출력 함수이고, 마찬가지로 자동으로 판단하여 출력한다.

C언어에서 scanf, printf도 <cstdio>를 include 하면 사용가능 하다. 

보통 cout에서 endl가(줄바꿈) 많이 느리기 때문에 cout<<a+b<<'\n'; 형태로 바꾸거나

printf를 사용한다.


먼저 쉬운 a+b문제를 c++로 타이핑하여 풀어 보겠다.

문제링크)

정답 보기



다음은 scanf함수의 리턴값을 이용하여 테스트케이스를 주지 않은 경우의 문제를 풀어 보겠다.

scanf함수는 EOF(end of file)을 만나게 되면 리턴 값으로 -1을 리턴한다 따라서 a, b두개를 입력받고 리턴값이 -1이라면 종료하면 된다.

또는 scanf 함수는 입력받는데 성공한 인자들의 수를 리턴하기 때문에 리턴값이 2가 아니라면 종료하면 된다.

문제링크)

정답 보기



다음과 같은 경우는 0 0 이라는 입력이 오는 경우에 종료하면 된다.

문제링크) 


다음은 주어진 a b가 a,b와 같이 입력으로 주어지는 경우이다.

scanf함수는 입력포맷설정을 통해 문자열 규칙 사이에 있는 정수들을 뽑아 낼 수 있다.

문제링크)

정답 보기



문자열은 크게 2가지 형태로 입력가능하다.

C에서와 같이 char str[] 형태로 입력 받는 방법과

C++ 에서 <string> 헤더파일에 존재하는 string 클래스를 이용하여 입력받는 방법이다.

주의할 점은 strlen 함수는 O(n)이고 size함수는 O(1)이다.

문제링크)

정답 보기


다음은 2차원 형태의 문자열을 입력받고 문제 조건에 맞는 정답을 찾아보는 문제이다.

char 2차원 배열을 이용한다면 null값을 생각해서 8*9의 크기로 선언하여야 한다.

체스판에 대한 힌트를 준다면 i행 j열의 칸이 흰색인지 검정색인지 는 i+j를 해보면 쉽게 알 수 있다.

문제링크)

정답 보기


이정도로 기본적인 c++ 입출력은 마치도록 한다.

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

STL 정리  (1) 2017.04.24
C++ 기초  (1) 2017.04.24
댓글
댓글쓰기 폼