C++

ํ‘œ์ค€ ์ž…์ถœ๋ ฅ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

#include <iostream>

iostream ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” c++ ํ‘œ์ค€ ์ž…์ถœ๋ ฅ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. c์–ธ์–ด์˜ stdio.h์™€ ํก์‚ฌํ•˜๊ฒŒ ์‚ฌ์šฉ๋œ๋‹ค. c++์—์„œ๋Š” ํ˜•์‹ ์ง€์ •์ž(ex %d, %f)๋ฅผ ๋„ฃ์–ด์ฃผ์ง€ ์•Š์•„๋„ ๋ณ€์ˆ˜๋ฅผ ํƒ€์ž…์— ๋งž๊ฒŒ ์ ์ ˆํžˆ ์ž…์ถœ๋ ฅ์„ ํ•ด์ค€๋‹ค. c++ ๊ธฐ๋ณธ ์ž…์ถœ๋ ฅ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ๋Š” >>์™€ << ์—ฐ์‚ฐ์ž๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์ด๋•Œ ์ž…๋ ฅ์„ ๋ฐ›๋Š” >> ์—ฐ์‚ฐ์ž๋Š” ๊ณต๋ฐฑ๋ฌธ์ž(space, Enter, Tab)์„ ๊ธฐ์ค€์œผ๋กœ ์ž…๋ ฅ์„ ๋ฐ›๋Š”๋‹ค.

#include <iostream>
#include <string>

int main(){
	std::string input;
	std::cin >> input;
	std::cout << input << std::endl;
	return 0;
}

cin

๊ณ ์ˆ˜์ค€ ์ž…๋ ฅ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ๊ฐ„๋‹จํ•ด์ง€์ง€๋งŒ, ์ด์— ์˜ํ•œ ์†๋„ ์ €ํ•˜ ๋˜ํ•œ ํด ์ˆ˜ ์žˆ๋‹ค. <cstdio>์™€์˜ ๋™๊ธฐํ™”๋ฅผ ๋„๋ฉด ํ›จ์”ฌ ๋นจ๋ผ์ง„๋‹ค.

#include <iostream>
using namespace std;

int main(void){
    cin.sync_with_stdio(false);    
    return 0;
}

namespace

namespace๋Š” ํŠน์ • ์˜์—ญ์— ์ด๋ฆ„์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฌธ๋ฒ•์ด๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ณต๋™์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ ๊ฐ์ž ๊ฐœ๋ฐœํ•œ ๋ชจ๋“ˆ์„ ํ•˜๋‚˜๋กœ ํ•ฉ์น  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.

[namespace]::[๋ณ€์ˆ˜ ํ˜น์€ ํ•จ์ˆ˜]

namespace๋ผ๋Š” ์†Œ์† ๊ณต๊ฐ„์— ๋”ฐ๋ผ ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜๊ฐ€ ๊ฐ™์€ ์ด๋ฆ„์ž„์—๋„ ๋‹ค๋ฅด๊ฒŒ ๊ตฌ๋ถ„์ด ๋  ์ˆ˜ ์žˆ๋‹ค.

#include <iostream>

namespace A{
    void function(){
        cout << "A namespace"<< endl;
    }
}
namespace B{
    void function(){
        cout << "B namespace"<< endl;
    }
}
int main(){
    A::function();
    B::function();
    return 0;
}

์—ฌ๊ธฐ์„œ ::๋Š” ๋ฒ”์œ„์ง€์ • ์—ฐ์‚ฐ์ž๋กœ ์–ด๋–ค namespace์—์„œ ์–ด๋–ค function์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ธ์ง€ ๋ช…์‹œํ•  ์ˆ˜ ์žˆ๋‹ค.

using namespace <namespace>

๊ธฐ๋ณธ์ ์œผ๋กœ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ using ํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•ด namespace๋กœ ์„ ์–ธํ•ด๋‘๊ณ  ์•ž์— ๋ช…์‹œํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

using namespace std;

int main(){
	string input;
	cin >> input;
	cout << input << endl;
	return 0;
}

string ๋ฌธ์ž์—ด ์ž๋ฃŒํ˜•

c++์€ ํ‘œ์ค€ ๋ฌธ์ž์—ด ์ž๋ฃŒํ˜•์„ ์ œ๊ณตํ•œ๋‹ค. ์ด๋Š” string ํ—ค๋” ํŒŒ์ผ์— ์ •์˜๋˜์–ด ์žˆ๋‹ค. ํด๋ž˜์Šค๋กœ ๊ตฌํ˜„๋˜์–ด์žˆ์–ด ๊ฐ ์ž๋ฃŒํ˜•๋ณ„๋กœ ๋‚ด์žฅํ•จ์ˆ˜๊ฐ€ ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

char arr[SIZE]; // c์–ธ์–ด
string s; 			// cpp

์œ„์—์„œ ๋งํ•œ >> ์—ฐ์‚ฐ์ž๋Š” ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ์ž…๋ ฅ๋ฐ›๋Š”๋ฐ, ํ•œ ์ค„ ์ „์ฒด๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ์—๋Š” getline()ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

int main(){
	string input;
	getline(cin, input);
	cout << input << endl;
	return 0;
}

๋˜ํ•œ, c++์˜ string์€ ๋‹ค๋ฅธ ์ž๋ฃŒํ˜•์œผ๋กœ์˜ ๋ณ€ํ™˜์ด ๊ฐ„ํŽธํ•˜๋‹ค. to_string(), stoi()์™€ ๊ฐ™์ด ์ •์ˆ˜๋ฅผ ๋ฌธ์ž์—ด๋กœ, ๋ฌธ์ž์—ด์„ ์ •์ˆ˜๋กœ ์‰ฝ๊ฒŒ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

 		int i = 123;
 		string s = to_string(i);
    cout << "์ •์ˆ˜ -> ๋ฌธ์ž์—ด" << s << endl;

    s = "456";
    i = stoi(s);
    cout << "๋ฌธ์ž์—ด -> ์ •์ˆ˜" << i << endl;

๋™์ ํ• ๋‹น๋„ c++์—์„œ ๋” ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.

#include <iostream>
#define SIZE 100

using namespace std;
int *arr;

int main(){
	arr = new int[SIZE]; // ๋™์ ํ• ๋‹น
	for(int i=0; i < SIZE; i++){
		cout << arr[i] << ' ';
	}
	delete arr; // ํ• ๋‹น ํ•ด์ œ
	return 0;
}

new ํ‚ค์›Œ๋“œ๋กœ ๋™์ ํ• ๋‹น์„ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ• ๋‹น ํ•ด์ œ์‹œ์—๋Š” delete๋กœ ํ•  ์ˆ˜ ์žˆ๋‹ค.

c์–ธ์–ด์™€ ๋น„๊ต

  • c++๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ ํŒจ๋Ÿฌ๋‹ค์ž„์„ ๋”ฐ๋ฅด๊ณ  ์žˆ๋Š” ์–ธ์–ด, c์–ธ์–ด๋Š” ์ ˆ์ฐจ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด

  • ์ฆ‰, c++์€ ๊ฐ์ฒด ์ค‘์‹ฌ์˜ ์–ธ์–ด์ด๊ณ , c์–ธ์–ด๋Š” ํ•จ์ˆ˜ ๊ธฐ๋ฐ˜์˜ ์–ธ์–ด์ด๋‹ค.

  • c++์€ c์–ธ์–ด์˜ ๊ตฌ์กฐ์ฒด(struct)๋Œ€์‹ ์— class๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

  • c++์€ ๊ณต์‹์ ์œผ๋กœ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ๊ธฐ์ˆ ์„ ์ง€์›ํ•œ๋‹ค.

Last updated