반응형

티스토리챌린지 16

C++, 명령행(command line) 사용해서 텍스트 파일 출력하기

C++에서 명령행 인자를 사용하여 텍스트 파일을 출력하는 방법을 살펴보겠습니다. 기본적인 예제 코드를 통해 이해하기 쉽게 설명하겠습니다.1. 프로그램 개요사용자는 프로그램 실행 시 파일 이름을 명령행 인자로 전달합니다.프로그램은 해당 파일을 열어 내용을 출력합니다.#include #include #include using namespace std;int main(int argc, char* argv[]) { // 명령행 인자가 부족한 경우 오류 메시지 출력 if (argc != 2) { cerr " 3. 코드 설명명령행 인자 처리:argc: 명령행 인자의 개수를 나타냅니다.argv: 명령행 인자를 문자열로 저장한 배열입니다.argv[0]: 실행 파일의 이름이고, argv[1]에 파..

C_C++ 13:08:23

C++, 10진수 8진수 16진수 출력

cout C++에서 8진수와 16진수를 출력하려면 입출력 조작자를 사용하여 숫자의 기본 출력 형식을 설정할 수 있습니다. 다음은 예제 코드입니다.#include using namespace std;int main() { int num = 255; // 기본 10진수 출력 cout Decimal: 255 Octal: 377 Hexadecimal: ff Hexadecimal (uppercase): FF 설명:oct: 8진수 출력 형식으로 설정.hex: 16진수 출력 형식으로 설정.uppercase: 16진수의 문자(A-F)를 대문자로 출력.기본적으로 dec은 10진수 출력 형식이며, 명시적으로 지정하지 않아도 됩니다.참고:std::cout은 출력 형식을 설정한 후 계속 유지합니다. 원래 상태..

C_C++ 2024.11.24

C++, 소수점 자릿수 지정, 오른쪽 정렬 줄맞추기

소수점 자릿수를 지정하려면 iomanip 헤더에서 제공하는 **std::setprecision**을 사용합니다. 고정된 소수점 자릿수를 표시하려면 **std::fixed**를 함께 사용해야 합니다.#include #include // std::fixed, std::setprecisionint main() { double value = 123.456789; // 소수점 2자리로 고정 std::cout Fixed to 2 decimal places: 123.46Fixed to 4 decimal places: 123.4568Default: 123.457 2. 데이터 정렬2-1. 텍스트 정렬숫자도 std::setw를 활용해 정렬할 수 있습니다.#include #include int main()..

C_C++ 2024.11.23

C++, setw 출력 폭 지정하기

C++에서 cout을 사용하여 출력 폭을 지정하려면 **std::setw**를 사용할 수 있습니다. 이 기능은 헤더에 정의되어 있으며, 출력할 데이터의 폭을 설정하는 데 사용됩니다.#include #include // setw 포함int main() { std::cout 추가 예제: 정렬 및 채우기1. 채우기 문자 설정 (std::setfill)출력 폭을 채우기 문자로 채울 수 있습니다.#include #include int main() { std::cout 2. 정렬 설정기본적으로 std::setw는 오른쪽 정렬을 사용합니다. std::left 또는 std::right를 사용하여 정렬 방향을 변경할 수 있습니다.#include #include int main() { std::cout..

C_C++ 2024.11.22

C++, 텍스트 파일 저장하기 읽어오기 fstream

C++에서 텍스트 파일을 저장하고 읽어오는 방법은 파일 입출력을 지원하는 헤더를 사용하여 구현할 수 있습니다. 아래는 텍스트 파일에 데이터를 저장하고 다시 읽어오는 예제입니다. 1. 텍스트 파일 저장하기 (쓰기)파일에 데이터를 저장하려면 std::ofstream을 사용합니다.#include #include // 파일 입출력 헤더int main() { std::ofstream outFile("example.txt"); // 쓰기 모드로 파일 열기 if (!outFile) { std::cerr  2. 텍스트 파일 읽어오기파일에서 데이터를 읽으려면 std::ifstream을 사용합니다.#include #include // 파일 입출력 헤더#include // 문자열 처리를 위한..

C_C++ 2024.11.21

C++ 예외처리 Exception Handling

C++에서 예외 처리(Exception Handling)는 프로그램 실행 중 발생할 수 있는 예외적인 상황(에러)을 처리하기 위한 메커니즘입니다. 이를 통해 프로그램의 비정상 종료를 방지하고, 적절히 에러를 처리할 수 있습니다.C++ 예외 처리는 주로 try, throw, catch 키워드를 사용하여 구현됩니다. 1. 기본 구조try {     // 예외가 발생할 가능성이 있는 코드 } catch (exception_type e) {     // 예외 처리 코드 } try: 예외가 발생할 가능성이 있는 코드를 작성하는 블록.throw: 예외가 발생했을 때 예외 객체를 던지는 명령.catch: 던져진 예외를 받아 처리하는 블록.2. 간단한 예제#include int main() { try { ..

C_C++ 2024.11.20

C++, <vector> 템플릿 이용하기

은 C++ 표준 라이브러리에서 제공하는 동적 배열 컨테이너로, std::vector 클래스를 정의합니다. 동적 배열은 크기가 가변적이어서 런타임에 요소를 추가하거나 제거할 수 있습니다.std::vector는 내부적으로 메모리를 효율적으로 관리하며, 배열과 유사한 방식으로 요소에 접근할 수 있는 기능을 제공합니다. 또한 자동으로 메모리를 재할당하면서 크기를 조정합니다. 주요 특징동적 크기 조정요소를 추가하거나 제거할 때, 자동으로 크기를 조정합니다.(초기 용량이 초과되면 메모리를 재할당하여 더 큰 공간을 확보합니다.)배열과 유사한 인덱싱요소에 배열처럼 인덱스를 통해 접근할 수 있습니다. (O(1) 시간 복잡도)STL과의 통합std::vector는 이터레이터를 지원하며, 다른 STL 알고리즘과 잘 통합됩니다..

C_C++ 2024.11.19

C++, 클래스 템플릿 class template

C++에서 클래스 템플릿은 여러 타입에 대해 동작할 수 있는 일반화된 클래스를 작성할 수 있도록 도와줍니다. 이를 통해 코드의 재사용성과 유연성을 높일 수 있습니다. 클래스 템플릿은 아래와 같은 방식으로 선언하고 사용할 수 있습니다.1. 클래스 템플릿 선언#include using namespace std;template // 또는 `class T`라고 써도 동일class MyClass {private: T data; // T 타입의 멤버 변수public: // 생성자 MyClass(T value) : data(value) {} // 데이터 출력 void printData() { cout   2. 클래스 템플릿 사용int main() { // int 타입으로..

C_C++ 2024.11.18

C++, 복사생성자 Copy Constructor

C++에서 **복사 생성자(Copy Constructor)**는 객체가 같은 클래스의 다른 객체로부터 복사되어 초기화될 때 호출됩니다. 주로 다음 상황에서 호출됩니다:객체가 복사로 초기화될 때.객체가 함수에 값으로 전달될 때.함수에서 객체를 값으로 반환할 때.복사 생성자의 기본 형태ClassName(const ClassName& other);const는 복사 생성자가 원본 객체를 수정하지 않도록 보장합니다. 예제아래는 복사 생성자를 정의하고 사용하는 간단한 예제입니다.#include #include class MyClass {private: char* name; // 동적으로 관리되는 문자열public: // 기본 생성자 MyClass(const char* inputName) { ..

C_C++ 2024.11.17

C++, 클래스 생성자에서 동적메모리 사용하는 예

C++에서 생성자 내부에서 동적 메모리를 생성하는 예제는 클래스 내부에서 멤버 변수를 동적으로 할당해야 할 때 자주 사용됩니다. new 연산자를 이용해서 메모리를 확보하기 때문에 어딘가에서 반드시 delete 연산자로 메모리를 해제해야 합니다. 그렇지 않으면 객체가 생성될 때마다 사용할 수 있는 메모리가 줄어들게 되며, 전체 프로그램에 영향을 미칠 수 있습니다.다음은 간단한 예제입니다.#define _CRT_SECURE_NO_WARNINGS#include #include using namespace std;class MyClass {private: char* name; // 동적 메모리로 관리될 문자열public: // 생성자: 문자열 동적 할당 MyClass(const char* inp..

C_C++ 2024.11.16
반응형