C++에서 콘솔 계산기 만들기Create a console calculator in C++

C++ 프로그래머의 일반적인 시작점은 명령줄에서 실행되는 "Hello, world!"The usual starting point for a C++ programmer is a "Hello, world!" 애플리케이션입니다.application that runs on the command line. 이 문서를 통해 Visual Studio에서 이 애플리케이션을 먼저 만든 후에 좀 더 어려운 계산기 앱을 만들겠습니다.That's what you'll create first in Visual Studio in this article, and then we'll move on to something more challenging: a calculator app.

사전 요구 사항Prerequisites

  • 컴퓨터에서 설치되고 실행 중인 C++ 워크로드를 사용하여 데스크톱 개발 을 위해 Visual Studio를 설치합니다.Have Visual Studio with the Desktop development with C++ workload installed and running on your computer. 아직 설치되지 않은 경우 Visual Studio에서 C++ 지원 설치를 참조하세요.If it's not installed yet, see Install C++ support in Visual Studio.

앱 프로젝트 만들기Create your app project

Visual Studio는 ‘프로젝트’를 사용하여 앱에 대한 코드를 구성하고 ‘솔루션’을 사용하여 프로젝트를 구성합니다.Visual Studio uses projects to organize the code for an app, and solutions to organize your projects. 프로젝트에는 앱을 빌드하는 데 사용되는 모든 옵션, 구성 및 규칙이 포함됩니다.A project contains all the options, configurations, and rules used to build your apps. 또한 프로젝트의 모든 파일과 외부 파일 간의 관계를 관리합니다.It also manages the relationship between all the project's files and any external files. 앱을 만들려면 먼저 새 프로젝트 및 솔루션을 만듭니다.To create your app, first, you'll create a new project and solution.

  1. Visual Studio를 방금 시작한 경우 Visual Studio 2019 대화 상자가 표시됩니다.If you've just started Visual Studio, you'll see the Visual Studio 2019 dialog box. 새 프로젝트 만들기 를 선택하여 시작합니다.Choose Create a new project to get started.

    Visual Studio 2019 첫 번째 대화 상자The Visual Studio 2019 initial dialog

    그렇지 않으면, Visual Studio의 메뉴 모음에서 파일 > 새로 만들기 > 프로젝트 를 선택합니다.Otherwise, on the menubar in Visual Studio, choose File > New > Project. 새 프로젝트 만들기 창이 열립니다.The Create a new project window opens.

  2. 프로젝트 템플릿 목록에서 콘솔 앱 을 선택한 후, 다음 을 선택합니다.In the list of project templates, choose Console App, then choose Next.

    콘솔 앱 템플릿 선택Choose the Console App template

    중요

    콘솔 앱 템플릿의 C++ 버전을 선택해야 합니다.Make sure you choose the C++ version of the Console App template. C++ , Windows콘솔 태그가 있으며, 아이콘은 모서리에 "++"가 있습니다.It has the C++, Windows, and Console tags, and the icon has "++" in the corner.

  3. 새 프로젝트 구성 대화 상자에서 프로젝트 이름 편집 상자를 선택하고, 새 프로젝트의 이름을 CalculatorTutorial 로 지정한 다음, 만들기 를 선택합니다.In the Configure your new project dialog box, select the Project name edit box, name your new project CalculatorTutorial, then choose Create.

    새 프로젝트 구성 대화 상자에서 프로젝트에 이름 지정Name your project in the Configure your new project dialog

    비어 있는 C++ Windows 콘솔 애플리케이션이 생성됩니다.An empty C++ Windows console application gets created. 콘솔 애플리케이션은 Windows 콘솔 창을 사용하여 출력을 표시하고 사용자 입력을 허용합니다.Console applications use a Windows console window to display output and accept user input. Visual Studio에서 편집기 창이 열리고 생성된 코드를 보여 줍니다.In Visual Studio, an editor window opens and shows the generated code:

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include <iostream>
    
    int main()
    {
        std::cout << "Hello World!\n";
    }
    
    // Run program: Ctrl + F5 or Debug > Start Without Debugging menu
    // Debug program: F5 or Debug > Start Debugging menu
    
    // Tips for Getting Started:
    //   1. Use the Solution Explorer window to add/manage files
    //   2. Use the Team Explorer window to connect to source control
    //   3. Use the Output window to see build output and other messages
    //   4. Use the Error List window to view errors
    //   5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
    //   6. In the future, to open this project again, go to File > Open > Project and select the .sln file
    

새 앱이 빌드되고 실행되는지 확인Verify that your new app builds and runs

새 Windows 콘솔 애플리케이션의 템플릿은 간단한 C++ "Hello World" 앱을 생성합니다.The template for a new Windows console application creates a simple C++ "Hello World" app. 이 시점에서는 Visual Studio가 IDE에서 직접 만든 앱을 빌드하고 실행하는 방법을 확인할 수 있습니다.At this point, you can see how Visual Studio builds and runs the apps you create right from the IDE.

  1. 프로젝트를 빌드하려면 빌드 메뉴에서 솔루션 빌드 를 선택합니다.To build your project, choose Build Solution from the Build menu. 출력 창은 빌드 프로세스의 결과를 보여줍니다.The Output window shows the results of the build process.

    빌드 프로세스의 결과를 보여 주는 출력 창이 있는 Visual Studio 2019의 스크린샷Screenshot of Visual Studio 2019 with the Output window showing the result of the build process.

  2. 코드를 실행하려면 메뉴 모음에서 디버그, 디버깅하지 않고 시작 을 선택합니다.To run the code, on the menu bar, choose Debug, Start without debugging.

    코드가 성공적으로 실행되었음을 보여 주는 Visual Studio 2019 Microsoft Visual Studio 디버그 콘솔의 스크린샷Screenshot of the Visual Studio 2019 Microsoft Visual Studio Debug Console showing the code ran successfully.

    콘솔 창이 열린 다음, 앱을 실행합니다.A console window opens and then runs your app. Visual Studio에서 콘솔 앱을 시작하면 코드를 실행한 다음, "이 창을 닫으려면 아무 키나 누르세요.When you start a console app in Visual Studio, it runs your code, then prints "Press any key to close this window . 을 선택합니다.. "를 표시하여." 출력을 볼 수 있도록 합니다.to give you a chance to see the output. 지금까지Congratulations! Visual Studio에서 첫 번째 "Hello, world!"You've created your first "Hello, world!" 콘솔 앱을 만들었습니다.console app in Visual Studio!

  3. 키를 눌러서 콘솔 창을 닫고 Visual Studio로 돌아갑니다.Press a key to dismiss the console window and return to Visual Studio.

이제 예상한 대로 코드가 계속 작동하는지 확인하기 위해 앱을 변경할 때마다 빌드하고 실행할 도구가 설치되었습니다.You now have the tools to build and run your app after every change, to verify that the code still works as you expect. 그렇지 않은 경우 디버그하는 방법을 나중에 보여드리겠습니다.Later, we'll show you how to debug it if it doesn't.

코드 편집Edit the code

이제 이 템플릿의 코드를 계산기 앱으로 바꾸겠습니다.Now let's turn the code in this template into a calculator app.

  1. CalculatorTutorial.cpp 파일에서 이 예제와 일치하도록 코드를 편집합니다.In the CalculatorTutorial.cpp file, edit the code to match this example:

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        cout << "Calculator Console Application" << endl << endl;
        cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b"
            << endl;
        return 0;
    }
    
    // Run program: Ctrl + F5 or Debug > Start Without Debugging menu
    // Debug program: F5 or Debug > Start Debugging menu
    // Tips for Getting Started:
    //   1. Use the Solution Explorer window to add/manage files
    //   2. Use the Team Explorer window to connect to source control
    //   3. Use the Output window to see build output and other messages
    //   4. Use the Error List window to view errors
    //   5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
    //   6. In the future, to open this project again, go to File > Open > Project and select the .sln file
    

    코드 이해:Understanding the code:

    • #include 문을 통해 다른 파일에 있는 코드를 참조할 수 있습니다.The #include statements allow you to reference code located in other files. 경우에 따라 파일 이름이 꺾쇠 괄호( <> )로 묶여서 표시될 수 있습니다. 아니면 따옴표( “ ” )로 묶일 수 있습니다.Sometimes, you may see a filename surrounded by angle brackets (<>); other times, it's surrounded by quotes (" "). 일반적으로, C++ 표준 라이브러리를 참조할 때 꺾쇠 괄호를 사용하는 반면 다른 파일의 경우 따옴표를 사용합니다.In general, angle brackets are used when referencing the C++ Standard Library, while quotes are used for other files.
    • using namespace std; 줄은 이 파일에 사용할 C++ 표준 라이브러리의 항목을 가져오도록 컴파일러에 지시합니다.The using namespace std; line tells the compiler to expect stuff from the C++ Standard Library to be used in this file. 이 줄이 없으면 라이브러리의 각 키워드에서는 해당 범위를 나타내는 std::가 앞에 와야 합니다.Without this line, each keyword from the library would have to be preceded with a std::, to denote its scope. 예를 들어 해당 줄이 없으면 cout에 대한 참조는 각각 std::cout와 같이 작성되어야 합니다.For instance, without that line, each reference to cout would have to be written as std::cout. 코드를 정리하기 위해 using 문을 추가합니다.The using statement is added to make the code look more clean.
    • C++인 표준 출력으로 인쇄하기 위해 cout 키워드를 사용합니다.The cout keyword is used to print to standard output in C++. << 연산자는 어떤 항목이든지 표준 출력에 보내도록 컴파일러에 지시합니다.The << operator tells the compiler to send whatever is to the right of it to the standard output.
    • endl 키워드는 Enter 키와 같이 줄을 종료하고 커서를 다음 줄로 이동시킵니다.The endl keyword is like the Enter key; it ends the line and moves the cursor to the next line. ""에 포함된 문자열 내에 \n을 배치하여 동일한 작업을 수행하는 것이 좋습니다. endl이 항상 버퍼를 플러시하고 프로그램의 성능을 저하시킬 수 있지만 매우 작은 앱이므로 가독성을 위해 대신 endl을 사용합니다.It is a better practice to put a \n inside the string (contained by "") to do the same thing, as endl always flushes the buffer and can hurt the performance of the program, but since this is a very small app, endl is used instead for better readability.
    • C++ 문은 항상 세미콜론으로 끝나야 하며, C++ 애플리케이션에는 항상 main() 함수가 포함되어야 합니다.All C++ statements must end with semicolons and all C++ applications must contain a main() function. 이 함수는 시작 시 프로그램이 실행하는 내용입니다.This function is what the program runs at the start. 코드를 사용하기 위해 main()에서 액세스할 수 있어야 합니다.All code must be accessible from main() in order to be used.
  2. 파일을 저장하려면 Ctrl+S 를 선택하거나 IDE의 위쪽 가까이에서 저장 아이콘, 메뉴 모음의 도구 모음에서 플로피 디스크 아이콘을 선택하세요.To save the file, enter Ctrl+S, or choose the Save icon near the top of the IDE, the floppy disk icon in the toolbar under the menu bar.

  3. 애플리케이션을 실행하려면 Ctrl+F5 키를 누르거나 디버그 메뉴로 이동하고 디버깅하지 않고 시작 을 선택하세요.To run the application, press Ctrl+F5 or go to the Debug menu and choose Start Without Debugging. 코드에서 지정된 텍스트가 표시되는 콘솔 창이 나타납니다.You should see a console window appear that displays the text specified in the code.

  4. 작업이 완료되면 콘솔 창을 닫습니다.Close the console window when you're done.

일부 계산을 수행하는 코드 추가Add code to do some math

일부 수학 논리를 추가할 차례입니다.It's time to add some math logic.

계산기 클래스를 추가하려면To add a Calculator class

  1. 프로젝트 메뉴로 이동하고, 클래스 추가 를 선택합니다.Go to the Project menu and choose Add Class. 클래스 이름 편집 상자에 계산기 를 입력합니다.In the Class Name edit box, enter Calculator. 확인 을 선택합니다.Choose OK. 2개의 새 파일이 프로젝트에 추가됩니다.Two new files get added to your project. 변경된 파일을 모두 한 번에 저장하려면 Ctrl+Shift+S 키를 누르세요.To save all your changed files at once, press Ctrl+Shift+S. 파일 > 모두 저장 의 바로 가기 키입니다.It's a keyboard shortcut for File > Save All. 저장 단추 옆에 있는 두 개의 플로피 디스크 아이콘인 모두 저장 에 대한 도구 모음 단추이기도 합니다.There's also a toolbar button for Save All, an icon of two floppy disks, found beside the Save button. 일반적으로, 모두 저장 을 자주 수행하는 것이 좋습니다. 그러면 파일을 저장할 때 누락하지 않게 됩니다.In general, it's good practice to do Save All frequently, so you don't miss any files when you save.

    클래스 이름 텍스트 상자에 Calculator가 입력된 클래스 추가 대화 상자의 스크린샷Screenshot of the Add Class dialog box with Calculator typed in the Class Name text box.

    클래스는 특정 작업을 수행하는 개체의 청사진과 비슷합니다.A class is like a blueprint for an object that does something. 이 경우에는 계산기 및 계산기의 작동 방식을 정의합니다.In this case, we define a calculator and how it should work. 위에서 사용한 클래스 추가 마법사는 클래스와 동일한 이름을 가진 .h 및 .cpp 파일을 만들었습니다.The Add Class wizard you used above created .h and .cpp files that have the same name as the class. IDE의 측면에 표시되는 솔루션 탐색기 창에서 프로젝트 파일의 전체 목록을 볼 수 있습니다.You can see a full list of your project files in the Solution Explorer window, visible on the side of the IDE. 창이 표시되지 않으면 메뉴 모음에서 보기 > 솔루션 탐색기 를 선택하여 열 수 있습니다.If the window isn't visible, you can open it from the menu bar: choose View > Solution Explorer.

    Calculator Tutorial 프로젝트가 표시된 Visual Studio 2019 솔루션 탐색기 창의 스크린샷Screenshot of the Visual Studio 2019 Solution Explorer window displaying the Calculator Tutorial project.

    이제 편집기에는 다음과 같은 세 가지 탭이 열려 있습니다. CalculatorTutorial.cpp, Calculator.hCalculator.cppYou should now have three tabs open in the editor: CalculatorTutorial.cpp, Calculator.h, and Calculator.cpp. 실수로 그중 하나를 닫은 경우 솔루션 탐색기 창에서 두 번 클릭하여 다시 열 수 있습니다.If you accidentally close one of them, you can reopen it by double-clicking it in the Solution Explorer window.

  2. 생성된 Calculator();~Calculator(); 줄이 필요하지 않으므로 Calculator.h 에서 제거하세요.In Calculator.h, remove the Calculator(); and ~Calculator(); lines that were generated, since you won't need them here. 다음으로, 다음과 같은 코드 줄을 추가하면 파일은 이제 다음과 같습니다.Next, add the following line of code so the file now looks like this:

    #pragma once
    class Calculator
    {
    public:
        double Calculate(double x, char oper, double y);
    };
    

    코드 이해Understanding the code

    • 추가한 줄은 Calculate라는 새 함수를 선언합니다. 더하기, 빼기, 곱하기 및 나누기 등 수학 작업을 실행하는 데 이 함수를 사용합니다.The line you added declares a new function called Calculate, which we'll use to run math operations for addition, subtraction, multiplication, and division.
    • C++ 코드는 헤더(.h) 파일 및 원본(.cpp) 파일로 구성됩니다.C++ code is organized into header (.h) files and source (.cpp) files. 다른 여러 파일 확장명은 다양한 컴파일러에서 지원되지만 이러한 확장명이 알아야 할 주요 항목입니다.Several other file extensions are supported by various compilers, but these are the main ones to know about. 함수 및 변수는 일반적으로 선언 됩니다. 즉, 헤더 파일에서 이름 및 형식이 지정되고 구현 되거나 원본 파일에서 정의가 지정됩니다.Functions and variables are normally declared, that is, given a name and a type, in header files, and implemented, or given a definition, in source files. 다른 파일에 정의된 코드에 액세스하려면 #include "filename.h"를 사용하면 됩니다. 여기서 'filename.h'는 사용할 변수 또는 함수를 선언하는 파일의 이름입니다.To access code defined in another file, you can use #include "filename.h", where 'filename.h' is the name of the file that declares the variables or functions you want to use.
    • 삭제된 두 줄은 클래스의 생성자소멸자 를 정의했습니다.The two lines you deleted declared a constructor and destructor for the class. 이와 같은 간단한 클래스의 경우 컴파일러가 해당 항목을 만듭니다. 사용법은 이 자습서에서 다루지 않습니다.For a simple class like this one, the compiler creates them for you, and their uses are beyond the scope of this tutorial.
    • 나중에 필요한 코드를 찾기 쉽도록 코드 내용에 따라 해당 코드를 다른 파일로 구성하는 것이 좋습니다.It's good practice to organize your code into different files based on what it does, so it's easy to find the code you need later. 이 경우에는 main() 함수를 포함하는 파일에서 개별적으로 Calculator 클래스를 정의하지만 main()에서 Calculator 클래스를 참조하려고 합니다.In our case, we define the Calculator class separately from the file containing the main() function, but we plan to reference the Calculator class in main().
  3. 녹색 오류 표시선이 Calculate에 나타납니다.You'll see a green squiggle appear under Calculate. .cpp 파일에서 Calculate 함수를 정의하지 않았기 때문입니다.It's because we haven't defined the Calculate function in the .cpp file. 단어를 마우스로 가리키고, 팝업된 전구(이 경우에 스크루드라이버)를 클릭하고, Calculator.cpp에서 'Calculate'의 정의 만들기 를 선택합니다.Hover over the word, click the lightbulb (in this case, a screwdriver) that pops up, and choose Create definition of 'Calculate' in Calculator.cpp.

    강조 표시된 Calculator CPP 옵션의 Calculate 정의 만들기를 보여 주는 Visual Studio 2019의 스크린샷Screenshot of Visual Studio 2019 showing the Create definition of Calculate in Calculator C P P option highlighted.

    다른 파일에서 이루어진 코드 변경 내용의 피킹을 제공하는 팝업이 나타납니다.A pop-up appears that gives you a peek of the code change that was made in the other file. 코드를 Calculator.cpp 에 추가했습니다.The code was added to Calculator.cpp.

    Calculate의 정의가 표시된 팝업 항목Pop-up with definition of Calculate

    현재, 0.0만 반환합니다.Currently, it just returns 0.0. 이를 변경해봅시다.Let's change that. Esc 키를 눌러 팝업을 닫습니다.Press Esc to close the pop-up.

  4. 편집기 창에서 Calculator.cpp 파일로 전환합니다.Switch to the Calculator.cpp file in the editor window. .h 파일에서 수행한 대로 Calculator()~Calculator() 섹션을 제거하고 다음 코드를 Calculate()에 추가합니다.Remove the Calculator() and ~Calculator() sections (as you did in the .h file) and add the following code to Calculate():

    #include "Calculator.h"
    
    double Calculator::Calculate(double x, char oper, double y)
    {
        switch(oper)
        {
            case '+':
                return x + y;
            case '-':
                return x - y;
            case '*':
                return x * y;
            case '/':
                return x / y;
            default:
                return 0.0;
        }
    }
    

    코드 이해Understanding the code

    • Calculate 함수는 숫자, 연산자 및 두 번째 숫자를 사용한 다음, 숫자에 대해 요청된 작업을 수행합니다.The function Calculate consumes a number, an operator, and a second number, then performs the requested operation on the numbers.
    • 스위치 문은 제공된 연산자를 검사하고, 해당 작업에 해당하는 사례만을 실행합니다.The switch statement checks which operator was provided, and only executes the case corresponding to that operation. 프로그램이 중단되지 않도록 사용자가 허용되지 않는 연산자를 입력하는 경우에는 기본 사례로 대체됩니다.The default: case is a fallback in case the user types an operator that isn't accepted, so the program doesn't break. 일반적으로 더 세련된 방식으로 잘못된 사용자 입력을 처리하는 것이 좋지만 이 자습서에서는 다루지 않습니다.In general, it's best to handle invalid user input in a more elegant way, but this is beyond the scope of this tutorial.
    • double 키워드는 10진수를 지원하는 수 형식을 나타냅니다.The double keyword denotes a type of number that supports decimals. 이렇게 하면 계산기는 10진수 수학 및 정수 계산을 모두 처리할 수 있습니다.This way, the calculator can handle both decimal math and integer math. 코드 시작 부분의 double 로 인해(이 함수의 반환 형식을 나타냄) 항상 이러한 숫자를 반환하도록 Calculate 함수가 필요합니다. 이 때문에 기본 사례에서도 0.0을 반환합니다.The Calculate function is required to always return such a number due to the double at the very start of the code (this denotes the function's return type), which is why we return 0.0 even in the default case.
    • .h 파일은 프로토타입 함수를 선언합니다. 해당 함수는 컴파일러에 미리 필요한 매개 변수 및 예상되는 반환 형식을 지시합니다.The .h file declares the function prototype, which tells the compiler upfront what parameters it requires, and what return type to expect from it. .cpp 파일에는 함수의 구현 세부 정보가 포함됩니다.The .cpp file has all the implementation details of the function.

이 시점에서 코드를 빌드하고 실행하는 경우 수행할 작업을 물은 후에 종료됩니다.If you build and run the code again at this point, it will still exit after asking which operation to perform. 다음으로, 몇 가지 계산을 수행하도록 main 함수를 수정합니다.Next, you'll modify the main function to do some calculations.

계산기 클래스 멤버 함수를 호출하려면To call the Calculator class member functions

  1. 이제 CalculatorTutorial.cpp 에서 main 함수를 업데이트하겠습니다.Now let's update the main function in CalculatorTutorial.cpp:

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include <iostream>
    #include "Calculator.h"
    
    using namespace std;
    
    int main()
    {
        double x = 0.0;
        double y = 0.0;
        double result = 0.0;
        char oper = '+';
    
        cout << "Calculator Console Application" << endl << endl;
        cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b"
             << endl;
    
        Calculator c;
        while (true)
        {
            cin >> x >> oper >> y;
            result = c.Calculate(x, oper, y);
            cout << "Result is: " << result << endl;
        }
    
        return 0;
    }
    

    코드 이해Understanding the code

    • C++ 프로그램이 항상 main() 함수에서 시작하므로 거기에서 다른 코드를 호출해야 합니다. 따라서 #include 문이 필요합니다.Since C++ programs always start at the main() function, we need to call our other code from there, so a #include statement is needed.
    • 일부 초기 변수(x, y, operresult)를 선언하여 첫 번째 숫자, 두 번째 숫자, 연산자 및 최종 결과를 각각 저장합니다.Some initial variables x, y, oper, and result are declared to store the first number, second number, operator, and final result, respectively. 정의되지 않은 동작을 방지하려면 몇 가지 초기 값을 입력하는 것이 좋습니다. 여기서는 이를 수행했습니다.It is always good practice to give them some initial values to avoid undefined behavior, which is what is done here.
    • Calculator c; 줄은 'c'라는 개체를 Calculator 클래스의 인스턴스로 선언합니다.The Calculator c; line declares an object named 'c' as an instance of the Calculator class. 클래스 자체는 계산기 작동 방식의 청사진입니다. 개체는 계산을 수행하는 특정 계산기입니다.The class itself is just a blueprint for how calculators work; the object is the specific calculator that does the math.
    • while (true) 문은 루프입니다.The while (true) statement is a loop. () 내의 조건이 true인 경우 루프 내부의 코드는 계속 반복해서 실행됩니다.The code inside the loop continues to execute over and over again as long as the condition inside the () holds true. 조건이 단순히 true 로 나열되므로 항상 true입니다. 따라서 루프가 계속 실행됩니다.Since the condition is simply listed as true, it's always true, so the loop runs forever. 프로그램을 닫으려면 사용자가 수동으로 콘솔 창을 닫아야 합니다.To close the program, the user must manually close the console window. 그렇지 않으면 프로그램은 항상 새 입력을 기다리며 대기합니다.Otherwise, the program always waits for new input.
    • cin 키워드는 사용자로부터 입력을 허용하는 데 사용됩니다.The cin keyword is used to accept input from the user. 이 입력 스트림은 사용자 입력이 필수 사양과 일치한다고 가정하기 위해 콘솔 창에 입력된 텍스트 줄을 처리하고, 나열된 변수 각각에 배치할 수 있을 만큼 지능적입니다.This input stream is smart enough to process a line of text entered in the console window and place it inside each of the variables listed, in order, assuming the user input matches the required specification. 다른 형식의 입력(예: 세 개 이상의 숫자)을 허용하도록 이 줄을 수정할 수 있지만 Calculate() 함수가 이를 처리하도록 업데이트되어야 합니다.You can modify this line to accept different types of input, for instance, more than two numbers, though the Calculate() function would also need to be updated to handle this.
    • c.Calculate(x, oper, y); 식은 이전에 정의된 Calculate 함수를 호출하고, 입력된 입력 값을 제공합니다.The c.Calculate(x, oper, y); expression calls the Calculate function defined earlier, and supplies the entered input values. 그러면 함수는 result에 저장된 수를 반환합니다.The function then returns a number that gets stored in result.
    • 마지막으로, result가 콘솔에 출력되므로 계산 결과가 사용자에게 표시됩니다.Finally, result is printed to the console, so the user sees the result of the calculation.

코드 다시 빌드 및 테스트Build and test the code again

이제 프로그램을 다시 테스트하여 모든 항목이 제대로 작동하는지 확인하겠습니다.Now it's time to test the program again to make sure everything works properly.

  1. Ctrl+F5 키를 눌러 앱을 다시 빌드하고 시작합니다.Press Ctrl+F5 to rebuild and start the app.

  2. 5 + 5를 입력하고 Enter 키를 누릅니다.Enter 5 + 5, and press Enter. 결과가 10인지 확인합니다.Verify that the result is 10.

    5+5의 올바른 결과를 보여 주는 Visual Studio 2019 Microsoft Visual Studio 디버그 콘솔의 스크린샷Screenshot of the Visual Studio 2019 Microsoft Visual Studio Debug Console showing the correct result of 5 + 5.

앱 디버그Debug the app

사용자가 콘솔 창에 무엇이든 입력할 수 있으므로 계산기가 예상대로 일부 입력을 처리하는지 확인하겠습니다.Since the user is free to type anything into the console window, let's make sure the calculator handles some input as expected. 프로그램을 실행하는 대신 디버깅하여 수행 내용을 단계별로 자세히 검사할 수 있습니다.Instead of running the program, let's debug it instead, so we can inspect what it's doing in detail, step-by-step.

디버거에서 앱을 실행하려면To run the app in the debugger

  1. 사용자가 입력하도록 요청받은 직후 result = c.Calculate(x, oper, y); 줄에 중단점을 설정합니다.Set a breakpoint on the result = c.Calculate(x, oper, y); line, just after the user was asked for input. 중단점을 설정하려면 편집기 창의 왼쪽 가장자리를 따라 있는 회색 세로 막대의 줄 옆을 클릭합니다.To set the breakpoint, click next to the line in the gray vertical bar along the left edge of the editor window. 빨간색 점이 나타납니다.A red dot appears.

    중단점을 나타내는 빨간 점을 보여 주는 Visual Studio 2019의 스크린샷Screenshot of Visual Studio 2019 showing the red dot that represents a breakpoint.

    이제 프로그램을 디버깅할 때 항상 해당 줄에서 실행이 일시 중지됩니다.Now when we debug the program, it always pauses execution at that line. 프로그램이 간단한 케이스에 대해 작동하는 대략적인 아이디어가 이미 있습니다.We already have a rough idea that the program works for simple cases. 매번 실행을 일시 정지하지 않으므로 조건부로 중단점을 만듭니다.Since we don't want to pause execution every time, let's make the breakpoint conditional.

  2. 중단점을 나타내는 빨간색 점을 마우스 오른쪽 단추로 클릭하고, 조건 을 선택합니다.Right-click the red dot that represents the breakpoint, and choose Conditions. 조건의 편집 상자에 (y == 0) && (oper == '/')를 입력합니다.In the edit box for the condition, enter (y == 0) && (oper == '/'). 완료되면 닫기 단추를 선택합니다.Choose the Close button when you're done. 조건이 자동으로 저장됩니다.The condition is saved automatically.

    중단점 설정 섹션과 true 값에 추가된 조건을 보여 주는 Visual Studio 2019의 스크린샷Screenshot of Visual Studio 2019 showing the Breakpoint Settings section and a condition added to the Is true value.

    이제 0으로 나누기를 시도하는 경우에 특히 중단점에서 실행을 일시 중지합니다.Now we pause execution at the breakpoint specifically if a division by 0 is attempted.

  3. 프로그램을 디버그하려면 F5 키를 누르거나 로컬 Windows 디버거 녹색 화살표 아이콘이 있는 도구 모음 단추를 선택합니다.To debug the program, press F5, or choose the Local Windows Debugger toolbar button that has the green arrow icon. 콘솔 앱에서 "5 - 0" 같은 코드를 입력하는 경우 프로그램은 정상적으로 작동하고 계속 실행됩니다.In your console app, if you enter something like "5 - 0", the program behaves normally and keeps running. 그러나 "10 / 0"을 입력하면 중단점에서 일시 중지됩니다.However, if you type "10 / 0", it pauses at the breakpoint. 연산자와 숫자 사이에 공백을 배치할 수도 있습니다. cin은 입력을 적절하게 구문 분석할 수 있을 만큼 지능적입니다.You can even put any number of spaces between the operator and numbers: cin is smart enough to parse the input appropriately.

    조건부 중단점에서 프로그램이 일시 중지되었음을 보여 주는 Visual Studios 2019의 스크린샷Screenshot of Visual Studios 2019 showing that the program paused at the conditional breakpoint.

디버거에서 유용한 창Useful windows in the debugger

코드를 디버그할 때마다 몇 개의 새 창이 표시되는 것을 확인할 수 있습니다.Whenever you debug your code, you may notice that some new windows appear. 이러한 창은 디버깅 환경을 지원할 수 있습니다.These windows can assist your debugging experience. 자동 창을 살펴보세요.Take a look at the Autos window. 자동 창에서는 적어도 3개 줄 이전부터 현재 줄까지 사용된 변수의 현재 값을 보여 줍니다.The Autos window shows you the current values of variables used at least three lines before and up to the current line. 해당 함수의 모든 변수를 보려면 로컬 창으로 전환합니다.To see all of the variables from that function, switch to the Locals window. 실제로 해당 항목이 프로그램에 미치는 영향을 확인하도록 디버깅하는 동안 이러한 변수 값을 수정할 수 있습니다.You can actually modify the values of these variables while debugging, to see what effect they would have on the program. 이 사례에서는 해당 항목을 그대로 둡니다.In this case, we'll leave them alone.

Visual Studio 2019의 로컬 창 스크린샷Screenshot of the Locals window in Visual Studio 2019.

코드 자체에 있는 변수를 마우스로 가리키기만 하면 실행이 현재 일시 중지된 경우 현재 값을 확인할 수도 있습니다.You can also just hover over variables in the code itself to see their current values where the execution is currently paused. 먼저 클릭하여 편집기 창에 포커스가 맞춰졌는지 확인합니다.Make sure the editor window is in focus by clicking on it first.

변수의 값을 표시하는 도구 설명을 보여 주는 Visual Studio 2019의 스크린샷Screenshot of Visual Studio 2019 showing the tooltip that appears displaying the value of the variable.

디버깅을 계속하려면To continue debugging

  1. 왼쪽의 노란색 줄은 현재 실행 지점을 보여줍니다.The yellow line on the left shows the current point of execution. 현재 줄이 Calculate을 호출하므로 F11 키를 눌러 해당 함수에서 한 단계씩 코드를 실행 합니다.The current line calls Calculate, so press F11 to Step Into the function. Calculate 함수의 본문에서 직접 찾아봅니다.You'll find yourself in the body of the Calculate function. 한 단계씩 코드 실행 에 주의하세요. 코드를 너무 많이 실행하면 많은 시간을 낭비할 수 있습니다.Be careful with Step Into; if you do it too much, you may waste a lot of time. 표준 라이브러리 함수를 포함하여, 현재 줄에서 사용하는 코드로 이동합니다.It goes into any code you use on the line you are on, including standard library functions.

  2. 이제 실행 지점이 Calculate 함수의 시작 부분에 있으므로 F10 키를 눌러 프로그램을 실행하는 중에 다음 줄로 이동합니다.Now that the point of execution is at the start of the Calculate function, press F10 to move to the next line in the program's execution. F10 키는 프로시저 단위 실행 이라고도 합니다.F10 is also known as Step Over. 프로시저 단위 실행 을 사용하여 줄의 각 파트에서 발생한 내용의 세부 정보를 살펴보지 않고 줄을 이동할 수 있습니다.You can use Step Over to move from line to line, without delving into the details of what is occurring in each part of the line. (Calculate의 본문에 도달하기 위해 수행한 대로) 다른 곳에서 호출되는 코드에 대해 더 심층적으로 알아보지 않으려면 일반적으로 한 단계씩 코드 실행 대신 프로시저 단위 실행 을 사용해야 합니다.In general you should use Step Over instead of Step Into, unless you want to dive more deeply into code that is being called from elsewhere (as you did to reach the body of Calculate).

  3. 다른 파일에서 main() 함수로 다시 이동할 때까지 계속 F10 키를 사용하여 각 줄을 프로시저 단위 실행 하고, cout 줄에서 중지합니다.Continue using F10 to Step Over each line until you get back to the main() function in the other file, and stop on the cout line.

    프로그램이 예정된 내용을 수행하는 것처럼 보입니다. 첫 번째 숫자를 사용하고 두 번째로 나눕니다.It looks like the program is doing what is expected: it takes the first number, and divides it by the second. cout 줄에서 result 변수를 마우스로 가리키거나 자동 창에서 result를 살펴봅니다.On the cout line, hover over the result variable or take a look at result in the Autos window. 올바르지 않은 것 같은 “inf”로 값이 등록된 것을 확인하게 됩니다. 해당 값을 수정하세요.You'll see its value is listed as "inf", which doesn't look right, so let's fix it. cout 줄은 result에 저장된 모든 값을 출력하므로 F10 키를 사용하여 추가로 한 줄을 실행하면 콘솔 창에서는 다음을 표시합니다.The cout line just outputs whatever value is stored in result, so when you step one more line forward using F10, the console window displays:

    0으로 나누기 결과를 보여 주는 Visual Studio 2019 Microsoft Visual Studio 디버그 콘솔의 스크린샷Screenshot of the Visual Studio 2019 Microsoft Visual Studio Debug Console showing the result of dividing by zero.

    이 결과는 0으로 나누기가 정의되지 않았기 때문에 발생합니다. 따라서 프로그램에는 요청된 작업에 대한 숫자 응답이 포함되지 않습니다.This result happens because division by zero is undefined, so the program doesn't have a numerical answer to the requested operation.

"0으로 나누기" 오류를 해결하려면To fix the "divide by zero" error

사용자가 문제를 이해할 수 있도록 0으로 나누기를 더욱 원활하게 처리해 보겠습니다.Let's handle division by zero more gracefully, so a user can understand the problem.

  1. CalculatorTutorial.cpp 를 다음과 같이 변경합니다.Make the following changes in CalculatorTutorial.cpp. (편집하며 계속하기 라는 디버거 기능을 통해 편집한 대로 프로그램이 실행되도록 둘 수 있습니다.)(You can leave the program running as you edit, thanks to a debugger feature called Edit and Continue):

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include <iostream>
    #include "Calculator.h"
    
    using namespace std;
    
    int main()
    {
        double x = 0.0;
        double y = 0.0;
        double result = 0.0;
        char oper = '+';
    
        cout << "Calculator Console Application" << endl << endl;
        cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b" << endl;
    
        Calculator c;
        while (true)
        {
            cin  >> x  >> oper  >> y;
            if (oper == '/' && y == 0)
            {
                cout << "Division by 0 exception" << endl;
                continue;
            }
            else
            {
                result = c.Calculate(x, oper, y);
            }
            cout << "Result is: " << result << endl;
        }
    
        return 0;
    }
    
  2. 이제 F5 키를 한 번 누릅니다.Now press F5 once. 사용자 입력에 대한 요청을 일시 중지해야 할 때까지 계속 프로그램을 실행합니다.Program execution continues all the way until it has to pause to ask for user input. 10 / 0을 다시 입력하세요.Enter 10 / 0 again. 이제 더 유용한 메시지가 출력됩니다.Now, a more helpful message is printed. 사용자에게는 추가 입력 메시지가 표시되고, 프로그램은 계속 정상적으로 실행됩니다.The user is asked for more input, and the program continues executing normally.

    변경 후 최종 결과를 보여 주는 Visual Studio 2019 Microsoft Visual Studio 디버그 콘솔의 스크린샷Screenshot of the Visual Studio 2019 Microsoft Visual Studio Debug Console showing the final result after changes.

    참고

    디버깅 모드에서 코드를 편집하면 코드가 부실해질 위험이 있습니다.When you edit code while in debugging mode, there is a risk of code becoming stale. 이 문제는 디버거가 계속 이전 코드를 실행하고 변경 내용을 사용하여 업데이트하지 않는 경우에 발생합니다.This happens when the debugger is still running your old code, and has not yet updated it with your changes. 디버거는 문제가 발생했음을 알려주는 대화 상자를 표시합니다.The debugger pops up a dialog to inform you when this happens. 경우에 따라 F5 키를 눌러 실행 중인 코드를 새로 고쳐야 합니다.Sometimes, you may need to press F5 to refresh the code being executed. 특히 함수를 변경하는 동시에 실행 지점이 해당 함수 내에 있는 경우 함수에서 나간 다음, 다시 들어와서 업데이트된 코드를 가져와야 합니다.In particular, if you make a change inside a function while the point of execution is inside that function, you'll need to step out of the function, then back into it again to get the updated code. 이 방법이 어떤 이유로 작동하지 않고 오류 메시지가 표시되는 경우 IDE의 맨 위에 있는 메뉴 아래의 도구 모음에서 빨간색 사각형을 클릭하여 디버깅을 중지한 다음, F5 키를 다시 입력하거나 도구 모음에서 중지 단추 옆에 있는 녹색 "재생" 화살표를 선택하여 디버깅을 시작할 수 있습니다.If that doesn't work for some reason and you see an error message, you can stop debugging by clicking on the red square in the toolbar under the menus at the top of the IDE, then start debugging again by entering F5 or by choosing the green "play" arrow beside the stop button on the toolbar.

    실행 및 디버그 바로 가기 이해Understanding the Run and Debug shortcuts

    • F5 키(또는 디버그 > 디버깅 시작)는 디버깅 세션이 활성 상태가 아닌 경우 디버깅 세션을 시작하고, 중단점에 도달하거나 프로그램에 사용자 입력이 필요할 때까지 프로그램을 실행합니다.F5 (or Debug > Start Debugging) starts a debugging session if one isn't already active, and runs the program until a breakpoint is hit or the program needs user input. 사용자 입력이 필요하지 않고 중단점에 도달할 수 없는 경우 프로그램 실행이 완료되면 프로그램이 종료되고 콘솔 창이 닫힙니다.If no user input is needed and no breakpoint is available to hit, the program terminates and the console window closes itself when the program finishes running. "Hello World"와 같은 프로그램을 실행한 경우 F5 키를 입력하여 창을 열어두기 전에 Ctrl+F5 키를 사용하거나 중단점을 설정합니다.If you have something like a "Hello World" program to run, use Ctrl+F5 or set a breakpoint before you enter F5 to keep the window open.
    • Ctrl+F5 키(또는 디버그 > 디버깅하지 않고 시작)는 디버그 모드로 전환하지 않고 애플리케이션을 실행합니다.Ctrl+F5 (or Debug > Start Without Debugging) runs the application without going into debug mode. 이 방법이 디버깅보다 약간 빠릅니다. 또한 프로그램 실행이 완료되면 콘솔 창을 열어 둡니다.This is slightly faster than debugging, and the console window stays open after the program finishes executing.
    • F10 키(프로시저 단위 실행 이라고도 함)를 통해 코드를 한 줄씩 반복하고, 코드를 실행하는 방법 및 실행의 각 단계에서 변수 값을 시각화할 수 있습니다.F10 (known as Step Over) lets you iterate through code, line-by-line, and visualize how the code is run and what variable values are at each step of execution.
    • F11 키(한 단계씩 코드 실행 이라고도 함)는 실행 줄에서 호출되는 함수를 한 단계씩 코드 실행한다는 점을 제외하고 프로시저 단위 실행 과 유사하게 작동합니다.F11 (known as Step Into) works similarly to Step Over, except it steps into any functions called on the line of execution. 예를 들어 실행되는 줄이 함수를 호출하는 경우 F11 키를 누르면 함수의 본문에 포인터를 이동시킵니다. 따라서 시작한 줄로 이동하기 전에 실행되는 함수의 코드를 수행할 수 있습니다.For example, if the line being executed calls a function, pressing F11 moves the pointer into the body of the function, so you can follow the function's code being run before coming back to the line you started at. F10 키를 누르면 함수 호출을 프로시저 단위로 실행하고 다음 줄로 이동합니다. 여전히 함수 호출이 실행되지만 프로그램은 표시되는 내용을 일시 중지하지 않습니다.Pressing F10 steps over the function call and just moves to the next line; the function call still happens, but the program doesn't pause to show you what it's doing.

앱 닫기Close the app

  • 계속 실행 중이면 계산기 앱의 콘솔 창을 닫습니다.If it's still running, close the console window for the calculator app.

완성된 앱The finished app

지금까지Congratulations! 계산기 앱의 코드를 완료하고, Visual Studio에서 빌드하고 디버깅했습니다.You've completed the code for the calculator app, and built and debugged it in Visual Studio.

다음 단계Next steps

C++용 Visual Studio에 대한 자세한 정보Learn more about Visual Studio for C++

C++ 프로그래머의 일반적인 시작점은 명령줄에서 실행되는 "Hello, world!"The usual starting point for a C++ programmer is a "Hello, world!" 애플리케이션입니다.application that runs on the command line. 이 문서를 통해 Visual Studio를 사용해 좀 더 어려운 문제인 계산기 앱을 개발해 보겠습니다.That's what you'll create in Visual Studio in this article, and then we'll move on to something more challenging: a calculator app.

사전 요구 사항Prerequisites

  • 컴퓨터에서 설치되고 실행 중인 C++ 워크로드를 사용하여 데스크톱 개발 을 위해 Visual Studio를 설치합니다.Have Visual Studio with the Desktop development with C++ workload installed and running on your computer. 아직 설치되지 않은 경우 Visual Studio에서 C++ 지원 설치를 참조하세요.If it's not installed yet, see Install C++ support in Visual Studio.

앱 프로젝트 만들기Create your app project

Visual Studio는 ‘프로젝트’를 사용하여 앱에 대한 코드를 구성하고 ‘솔루션’을 사용하여 프로젝트를 구성합니다.Visual Studio uses projects to organize the code for an app, and solutions to organize your projects. 프로젝트에는 앱을 빌드하는 데 사용되는 모든 옵션, 구성 및 규칙이 포함됩니다.A project contains all the options, configurations, and rules used to build your apps. 또한 프로젝트의 모든 파일과 외부 파일 간의 관계를 관리합니다.It also manages the relationship between all the project's files and any external files. 앱을 만들려면 먼저 새 프로젝트 및 솔루션을 만듭니다.To create your app, first, you'll create a new project and solution.

  1. Visual Studio의 메뉴 모음에서 파일 > 새로 만들기 > 프로젝트 를 선택합니다.On the menubar in Visual Studio, choose File > New > Project. 새 프로젝트 창이 열립니다.The New Project window opens.

  2. 왼쪽 세로 막대에서 Visual C++ 를 선택했는지 확인합니다.On the left sidebar, make sure Visual C++ is selected. 중앙에서 Windows 콘솔 애플리케이션 을 선택합니다.In the center, choose Windows Console Application.

  3. 맨 아래에 있는 이름 편집 상자에서 새 프로젝트의 이름을 CalculatorTutorial 이라고 지정하고, 확인 을 선택합니다.In the Name edit box at the bottom, name the new project CalculatorTutorial, then choose OK.

    새 프로젝트 대화 상자The New Project dialog

    비어 있는 C++ Windows 콘솔 애플리케이션이 생성됩니다.An empty C++ Windows console application gets created. 콘솔 애플리케이션은 Windows 콘솔 창을 사용하여 출력을 표시하고 사용자 입력을 허용합니다.Console applications use a Windows console window to display output and accept user input. Visual Studio에서 편집기 창이 열리고 생성된 코드를 보여 줍니다.In Visual Studio, an editor window opens and shows the generated code:

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include "pch.h"
    #include <iostream>
    
    int main()
    {
        std::cout << "Hello World!\n";
    }
    
    // Run program: Ctrl + F5 or Debug > Start Without Debugging menu
    // Debug program: F5 or Debug > Start Debugging menu
    
    // Tips for Getting Started:
    //   1. Use the Solution Explorer window to add/manage files
    //   2. Use the Team Explorer window to connect to source control
    //   3. Use the Output window to see build output and other messages
    //   4. Use the Error List window to view errors
    //   5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
    //   6. In the future, to open this project again, go to File > Open > Project and select the .sln file
    

새 앱이 빌드되고 실행되는지 확인Verify that your new app builds and runs

새 Windows 콘솔 애플리케이션의 템플릿은 간단한 C++ "Hello World" 앱을 생성합니다.The template for a new windows console application creates a simple C++ "Hello World" app. 이 시점에서는 Visual Studio가 IDE에서 직접 만든 앱을 빌드하고 실행하는 방법을 확인할 수 있습니다.At this point, you can see how Visual Studio builds and runs the apps you create right from the IDE.

  1. 프로젝트를 빌드하려면 빌드 메뉴에서 솔루션 빌드 를 선택합니다.To build your project, choose Build Solution from the Build menu. 출력 창은 빌드 프로세스의 결과를 보여줍니다.The Output window shows the results of the build process.

    빌드 프로세스의 결과를 보여 주는 출력 창이 있는 Visual Studio의 스크린샷Screenshot Visual Studio with the Output window showing the result of the build process.

  2. 코드를 실행하려면 메뉴 모음에서 디버그, 디버깅하지 않고 시작 을 선택합니다.To run the code, on the menu bar, choose Debug, Start without debugging.

    코드가 성공적으로 실행되었음을 보여 주는 Microsoft Visual Studio 디버그 콘솔의 스크린샷Screenshot of the Microsoft Visual Studio Debug Console showing the code ran successfully.

    콘솔 창이 열린 다음, 앱을 실행합니다.A console window opens and then runs your app. Visual Studio에서 콘솔 앱을 시작하면 코드를 실행한 다음, "계속하려면 아무 키나 누르세요.When you start a console app in Visual Studio, it runs your code, then prints "Press any key to continue . 을 선택합니다.. "를 표시하여." 출력을 볼 수 있도록 합니다.to give you a chance to see the output. 지금까지Congratulations! Visual Studio에서 첫 번째 "Hello, world!"You've created your first "Hello, world!" 콘솔 앱을 만들었습니다.console app in Visual Studio!

  3. 키를 눌러서 콘솔 창을 닫고 Visual Studio로 돌아갑니다.Press a key to dismiss the console window and return to Visual Studio.

이제 예상한 대로 코드가 계속 작동하는지 확인하기 위해 앱을 변경할 때마다 빌드하고 실행할 도구가 설치되었습니다.You now have the tools to build and run your app after every change, to verify that the code still works as you expect. 그렇지 않은 경우 디버그하는 방법을 나중에 보여드리겠습니다.Later, we'll show you how to debug it if it doesn't.

코드 편집Edit the code

이제 이 템플릿의 코드를 계산기 앱으로 바꾸겠습니다.Now let's turn the code in this template into a calculator app.

  1. CalculatorTutorial.cpp 파일에서 이 예제와 일치하도록 코드를 편집합니다.In the CalculatorTutorial.cpp file, edit the code to match this example:

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include "pch.h"
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        cout << "Calculator Console Application" << endl << endl;
        cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b"
            << endl;
        return 0;
    }
    
    // Run program: Ctrl + F5 or Debug > Start Without Debugging menu
    // Debug program: F5 or Debug > Start Debugging menu
    // Tips for Getting Started:
    //   1. Use the Solution Explorer window to add/manage files
    //   2. Use the Team Explorer window to connect to source control
    //   3. Use the Output window to see build output and other messages
    //   4. Use the Error List window to view errors
    //   5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
    //   6. In the future, to open this project again, go to File > Open > Project and select the .sln file
    

    코드 이해:Understanding the code:

    • #include 문을 통해 다른 파일에 있는 코드를 참조할 수 있습니다.The #include statements allow you to reference code located in other files. 경우에 따라 파일 이름이 꺾쇠 괄호( <> )로 묶여서 표시될 수 있습니다. 아니면 따옴표( “ ” )로 묶일 수 있습니다.Sometimes, you may see a filename surrounded by angle brackets (<>); other times, it's surrounded by quotes (" "). 일반적으로, C++ 표준 라이브러리를 참조할 때 꺾쇠 괄호를 사용하는 반면 다른 파일의 경우 따옴표를 사용합니다.In general, angle brackets are used when referencing the C++ Standard Library, while quotes are used for other files.
    • #include "pch.h"(또는 Visual Studio 2017 및 이전 버전#include "stdafx.h") 줄은 미리 컴파일된 헤더라는 항목을 참조합니다.The #include "pch.h" (or in Visual Studio 2017 and earlier, #include "stdafx.h") line references something known as a precompiled header. 해당 항목은 컴파일 시간을 개선하기 위해 전문 프로그래머에 의해 자주 사용되지만 이 자습서에서 다루지 않습니다.These are often used by professional programmers to improve compilation times, but they are beyond the scope of this tutorial.
    • using namespace std; 줄은 이 파일에 사용할 C++ 표준 라이브러리의 항목을 가져오도록 컴파일러에 지시합니다.The using namespace std; line tells the compiler to expect stuff from the C++ Standard Library to be used in this file. 이 줄이 없으면 라이브러리의 각 키워드에서는 해당 범위를 나타내는 std::가 앞에 와야 합니다.Without this line, each keyword from the library would have to be preceded with a std::, to denote its scope. 예를 들어 해당 줄이 없으면 cout에 대한 참조는 각각 std::cout와 같이 작성되어야 합니다.For instance, without that line, each reference to cout would have to be written as std::cout. 코드를 정리하기 위해 using 문을 추가합니다.The using statement is added to make the code look more clean.
    • C++인 표준 출력으로 인쇄하기 위해 cout 키워드를 사용합니다.The cout keyword is used to print to standard output in C++. << 연산자는 어떤 항목이든지 표준 출력에 보내도록 컴파일러에 지시합니다.The << operator tells the compiler to send whatever is to the right of it to the standard output.
    • endl 키워드는 Enter 키와 같이 줄을 종료하고 커서를 다음 줄로 이동시킵니다.The endl keyword is like the Enter key; it ends the line and moves the cursor to the next line. ""에 포함된 문자열 내에 \n을 배치하여 동일한 작업을 수행하는 것이 좋습니다. endl이 항상 버퍼를 플러시하고 프로그램의 성능을 저하시킬 수 있지만 매우 작은 앱이므로 가독성을 위해 대신 endl을 사용합니다.It is a better practice to put a \n inside the string (contained by "") to do the same thing, as endl always flushes the buffer and can hurt the performance of the program, but since this is a very small app, endl is used instead for better readability.
    • C++ 문은 항상 세미콜론으로 끝나야 하며, C++ 애플리케이션에는 항상 main() 함수가 포함되어야 합니다.All C++ statements must end with semicolons and all C++ applications must contain a main() function. 이 함수는 시작 시 프로그램이 실행하는 내용입니다.This function is what the program runs at the start. 코드를 사용하기 위해 main()에서 액세스할 수 있어야 합니다.All code must be accessible from main() in order to be used.
  2. 파일을 저장하려면 Ctrl+S 를 선택하거나 IDE의 위쪽 가까이에서 저장 아이콘, 메뉴 모음의 도구 모음에서 플로피 디스크 아이콘을 선택하세요.To save the file, enter Ctrl+S, or choose the Save icon near the top of the IDE, the floppy disk icon in the toolbar under the menu bar.

  3. 애플리케이션을 실행하려면 Ctrl+F5 키를 누르거나 디버그 메뉴로 이동하고 디버깅하지 않고 시작 을 선택하세요.To run the application, press Ctrl+F5 or go to the Debug menu and choose Start Without Debugging. 이 프로젝트가 만료되었습니다. 라는 문구의 팝업이 표시되면 이 대화 상자를 다시 표시 안 함 을 선택한 다음, 를 선택하여 애플리케이션을 빌드할 수 있습니다.If you get a pop-up that says This project is out of date, you may select Do not show this dialog again, and then choose Yes to build your application. 코드에서 지정된 텍스트가 표시되는 콘솔 창이 나타납니다.You should see a console window appear that displays the text specified in the code.

    애플리케이션 빌드 시작Build and start your application

  4. 작업이 완료되면 콘솔 창을 닫습니다.Close the console window when you're done.

일부 계산을 수행하는 코드 추가Add code to do some math

일부 수학 논리를 추가할 차례입니다.It's time to add some math logic.

계산기 클래스를 추가하려면To add a Calculator class

  1. 프로젝트 메뉴로 이동하고, 클래스 추가 를 선택합니다.Go to the Project menu and choose Add Class. 클래스 이름 편집 상자에 계산기 를 입력합니다.In the Class Name edit box, enter Calculator. 확인 을 선택합니다.Choose OK. 2개의 새 파일이 프로젝트에 추가됩니다.Two new files get added to your project. 변경된 파일을 모두 한 번에 저장하려면 Ctrl+Shift+S 키를 누르세요.To save all your changed files at once, press Ctrl+Shift+S. 파일 > 모두 저장 의 바로 가기 키입니다.It's a keyboard shortcut for File > Save All. 저장 단추 옆에 있는 두 개의 플로피 디스크 아이콘인 모두 저장 에 대한 도구 모음 단추이기도 합니다.There's also a toolbar button for Save All, an icon of two floppy disks, found beside the Save button. 일반적으로, 모두 저장 을 자주 수행하는 것이 좋습니다. 그러면 파일을 저장할 때 누락하지 않게 됩니다.In general, it's good practice to do Save All frequently, so you don't miss any files when you save.

    클래스 추가 대화 상자를 열고 클래스 이름 필드에 Calculator를 입력한 후 확인을 선택하는 사용자를 보여 주는 짧은 동영상Short video showing the user opening the Add Class dialog box, typing Calculator in the Class Name field, and selecting O K.

    클래스는 특정 작업을 수행하는 개체의 청사진과 비슷합니다.A class is like a blueprint for an object that does something. 이 경우에는 계산기 및 계산기의 작동 방식을 정의합니다.In this case, we define a calculator and how it should work. 위에서 사용한 클래스 추가 마법사는 클래스와 동일한 이름을 가진 .h 및 .cpp 파일을 만들었습니다.The Add Class wizard you used above created .h and .cpp files that have the same name as the class. IDE의 측면에 표시되는 솔루션 탐색기 창에서 프로젝트 파일의 전체 목록을 볼 수 있습니다.You can see a full list of your project files in the Solution Explorer window, visible on the side of the IDE. 창이 표시되지 않으면 메뉴 모음에서 보기 > 솔루션 탐색기 를 선택하여 열 수 있습니다.If the window isn't visible, you can open it from the menu bar: choose View > Solution Explorer.

    Calculator Tutorial 프로젝트가 표시된 솔루션 탐색기 창의 스크린샷Screenshot of the Solution Explorer window displaying the Calculator Tutorial project.

    이제 편집기에는 다음과 같은 세 가지 탭이 열려 있습니다. CalculatorTutorial.cpp, Calculator.hCalculator.cppYou should now have three tabs open in the editor: CalculatorTutorial.cpp, Calculator.h, and Calculator.cpp. 실수로 그중 하나를 닫은 경우 솔루션 탐색기 창에서 두 번 클릭하여 다시 열 수 있습니다.If you accidentally close one of them, you can reopen it by double-clicking it in the Solution Explorer window.

  2. 생성된 Calculator();~Calculator(); 줄이 필요하지 않으므로 Calculator.h 에서 제거하세요.In Calculator.h, remove the Calculator(); and ~Calculator(); lines that were generated, since you won't need them here. 다음으로, 다음과 같은 코드 줄을 추가하면 파일은 이제 다음과 같습니다.Next, add the following line of code so the file now looks like this:

    #pragma once
    class Calculator
    {
    public:
        double Calculate(double x, char oper, double y);
    };
    

    코드 이해Understanding the code

    • 추가한 줄은 Calculate라는 새 함수를 선언합니다. 더하기, 빼기, 곱하기 및 나누기 등 수학 작업을 실행하는 데 이 함수를 사용합니다.The line you added declares a new function called Calculate, which we'll use to run math operations for addition, subtraction, multiplication, and division.
    • C++ 코드는 헤더(.h) 파일 및 원본(.cpp) 파일로 구성됩니다.C++ code is organized into header (.h) files and source (.cpp) files. 다른 여러 파일 확장명은 다양한 컴파일러에서 지원되지만 이러한 확장명이 알아야 할 주요 항목입니다.Several other file extensions are supported by various compilers, but these are the main ones to know about. 함수 및 변수는 일반적으로 선언 됩니다. 즉, 헤더 파일에서 이름 및 형식이 지정되고 구현 되거나 원본 파일에서 정의가 지정됩니다.Functions and variables are normally declared, that is, given a name and a type, in header files, and implemented, or given a definition, in source files. 다른 파일에 정의된 코드에 액세스하려면 #include "filename.h"를 사용하면 됩니다. 여기서 'filename.h'는 사용할 변수 또는 함수를 선언하는 파일의 이름입니다.To access code defined in another file, you can use #include "filename.h", where 'filename.h' is the name of the file that declares the variables or functions you want to use.
    • 삭제된 두 줄은 클래스의 생성자소멸자 를 정의했습니다.The two lines you deleted declared a constructor and destructor for the class. 이와 같은 간단한 클래스의 경우 컴파일러가 해당 항목을 만듭니다. 사용법은 이 자습서에서 다루지 않습니다.For a simple class like this one, the compiler creates them for you, and their uses are beyond the scope of this tutorial.
    • 나중에 필요한 코드를 찾기 쉽도록 코드 내용에 따라 해당 코드를 다른 파일로 구성하는 것이 좋습니다.It's good practice to organize your code into different files based on what it does, so it's easy to find the code you need later. 이 경우에는 main() 함수를 포함하는 파일에서 개별적으로 Calculator 클래스를 정의하지만 main()에서 Calculator 클래스를 참조하려고 합니다.In our case, we define the Calculator class separately from the file containing the main() function, but we plan to reference the Calculator class in main().
  3. 녹색 오류 표시선이 Calculate에 나타납니다.You'll see a green squiggle appear under Calculate. .cpp 파일에서 Calculate 함수를 정의하지 않았기 때문입니다.It's because we haven't defined the Calculate function in the .cpp file. 단어를 마우스로 가리키고, 팝업된 전구를 클릭하고, Calculator.cpp에서 'Calculate'의 정의 만들기 를 선택합니다.Hover over the word, click the lightbulb that pops up, and choose Create definition of 'Calculate' in Calculator.cpp. 다른 파일에서 이루어진 코드 변경 내용의 피킹을 제공하는 팝업이 나타납니다.A pop-up appears that gives you a peek of the code change that was made in the other file. 코드를 Calculator.cpp 에 추가했습니다.The code was added to Calculator.cpp.

    Calculator CPP 옵션에서 Calculate 정의 만들기를 선택하는 사용자를 보여 주는 짧은 동영상Short video showing the user selecting the Create definition of Calculate in Calculator C P P option.

    현재, 0.0만 반환합니다.Currently, it just returns 0.0. 이를 변경해봅시다.Let's change that. Esc 키를 눌러 팝업을 닫습니다.Press Esc to close the pop-up.

  4. 편집기 창에서 Calculator.cpp 파일로 전환합니다.Switch to the Calculator.cpp file in the editor window. .h 파일에서 수행한 대로 Calculator()~Calculator() 섹션을 제거하고 다음 코드를 Calculate()에 추가합니다.Remove the Calculator() and ~Calculator() sections (as you did in the .h file) and add the following code to Calculate():

    #include "pch.h"
    #include "Calculator.h"
    
    double Calculator::Calculate(double x, char oper, double y)
    {
        switch(oper)
        {
            case '+':
                return x + y;
            case '-':
                return x - y;
            case '*':
                return x * y;
            case '/':
                return x / y;
            default:
                return 0.0;
        }
    }
    

    코드 이해Understanding the code

    • Calculate 함수는 숫자, 연산자 및 두 번째 숫자를 사용한 다음, 숫자에 대해 요청된 작업을 수행합니다.The function Calculate consumes a number, an operator, and a second number, then performs the requested operation on the numbers.
    • 스위치 문은 제공된 연산자를 검사하고, 해당 작업에 해당하는 사례만을 실행합니다.The switch statement checks which operator was provided, and only executes the case corresponding to that operation. 프로그램이 중단되지 않도록 사용자가 허용되지 않는 연산자를 입력하는 경우에는 기본 사례로 대체됩니다.The default: case is a fallback in case the user types an operator that isn't accepted, so the program doesn't break. 일반적으로 더 세련된 방식으로 잘못된 사용자 입력을 처리하는 것이 좋지만 이 자습서에서는 다루지 않습니다.In general, it's best to handle invalid user input in a more elegant way, but this is beyond the scope of this tutorial.
    • double 키워드는 10진수를 지원하는 수 형식을 나타냅니다.The double keyword denotes a type of number that supports decimals. 이렇게 하면 계산기는 10진수 수학 및 정수 계산을 모두 처리할 수 있습니다.This way, the calculator can handle both decimal math and integer math. 코드 시작 부분의 double 로 인해(이 함수의 반환 형식을 나타냄) 항상 이러한 숫자를 반환하도록 Calculate 함수가 필요합니다. 이 때문에 기본 사례에서도 0.0을 반환합니다.The Calculate function is required to always return such a number due to the double at the very start of the code (this denotes the function's return type), which is why we return 0.0 even in the default case.
    • .h 파일은 프로토타입 함수를 선언합니다. 해당 함수는 컴파일러에 미리 필요한 매개 변수 및 예상되는 반환 형식을 지시합니다.The .h file declares the function prototype, which tells the compiler upfront what parameters it requires, and what return type to expect from it. .cpp 파일에는 함수의 구현 세부 정보가 포함됩니다.The .cpp file has all the implementation details of the function.

이 시점에서 코드를 빌드하고 실행하는 경우 수행할 작업을 물은 후에 종료됩니다.If you build and run the code again at this point, it will still exit after asking which operation to perform. 다음으로, 몇 가지 계산을 수행하도록 main 함수를 수정합니다.Next, you'll modify the main function to do some calculations.

계산기 클래스 멤버 함수를 호출하려면To call the Calculator class member functions

  1. 이제 CalculatorTutorial.cpp 에서 main 함수를 업데이트하겠습니다.Now let's update the main function in CalculatorTutorial.cpp:

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include "pch.h"
    #include <iostream>
    #include "Calculator.h"
    
    using namespace std;
    
    int main()
    {
        double x = 0.0;
        double y = 0.0;
        double result = 0.0;
        char oper = '+';
    
        cout << "Calculator Console Application" << endl << endl;
        cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b"
             << endl;
    
        Calculator c;
        while (true)
        {
            cin >> x >> oper >> y;
            result = c.Calculate(x, oper, y);
            cout << "Result is: " << result << endl;
        }
    
        return 0;
    }
    

    코드 이해Understanding the code

    • C++ 프로그램이 항상 main() 함수에서 시작하므로 거기에서 다른 코드를 호출해야 합니다. 따라서 #include 문이 필요합니다.Since C++ programs always start at the main() function, we need to call our other code from there, so a #include statement is needed.
    • 일부 초기 변수(x, y, operresult)를 선언하여 첫 번째 숫자, 두 번째 숫자, 연산자 및 최종 결과를 각각 저장합니다.Some initial variables x, y, oper, and result are declared to store the first number, second number, operator, and final result, respectively. 정의되지 않은 동작을 방지하려면 몇 가지 초기 값을 입력하는 것이 좋습니다. 여기서는 이를 수행했습니다.It is always good practice to give them some initial values to avoid undefined behavior, which is what is done here.
    • Calculator c; 줄은 'c'라는 개체를 Calculator 클래스의 인스턴스로 선언합니다.The Calculator c; line declares an object named 'c' as an instance of the Calculator class. 클래스 자체는 계산기 작동 방식의 청사진입니다. 개체는 계산을 수행하는 특정 계산기입니다.The class itself is just a blueprint for how calculators work; the object is the specific calculator that does the math.
    • while (true) 문은 루프입니다.The while (true) statement is a loop. () 내의 조건이 true인 경우 루프 내부의 코드는 계속 반복해서 실행됩니다.The code inside the loop continues to execute over and over again as long as the condition inside the () holds true. 조건이 단순히 true 로 나열되므로 항상 true입니다. 따라서 루프가 계속 실행됩니다.Since the condition is simply listed as true, it's always true, so the loop runs forever. 프로그램을 닫으려면 사용자가 수동으로 콘솔 창을 닫아야 합니다.To close the program, the user must manually close the console window. 그렇지 않으면 프로그램은 항상 새 입력을 기다리며 대기합니다.Otherwise, the program always waits for new input.
    • cin 키워드는 사용자로부터 입력을 허용하는 데 사용됩니다.The cin keyword is used to accept input from the user. 이 입력 스트림은 사용자 입력이 필수 사양과 일치한다고 가정하기 위해 콘솔 창에 입력된 텍스트 줄을 처리하고, 나열된 변수 각각에 배치할 수 있을 만큼 지능적입니다.This input stream is smart enough to process a line of text entered in the console window and place it inside each of the variables listed, in order, assuming the user input matches the required specification. 다른 형식의 입력(예: 세 개 이상의 숫자)을 허용하도록 이 줄을 수정할 수 있지만 Calculate() 함수가 이를 처리하도록 업데이트되어야 합니다.You can modify this line to accept different types of input, for instance, more than two numbers, though the Calculate() function would also need to be updated to handle this.
    • c.Calculate(x, oper, y); 식은 이전에 정의된 Calculate 함수를 호출하고, 입력된 입력 값을 제공합니다.The c.Calculate(x, oper, y); expression calls the Calculate function defined earlier, and supplies the entered input values. 그러면 함수는 result에 저장된 수를 반환합니다.The function then returns a number that gets stored in result.
    • 마지막으로, result가 콘솔에 출력되므로 계산 결과가 사용자에게 표시됩니다.Finally, result is printed to the console, so the user sees the result of the calculation.

코드 다시 빌드 및 테스트Build and test the code again

이제 프로그램을 다시 테스트하여 모든 항목이 제대로 작동하는지 확인하겠습니다.Now it's time to test the program again to make sure everything works properly.

  1. Ctrl+F5 키를 눌러 앱을 다시 빌드하고 시작합니다.Press Ctrl+F5 to rebuild and start the app.

  2. 5 + 5를 입력하고 Enter 키를 누릅니다.Enter 5 + 5, and press Enter. 결과가 10인지 확인합니다.Verify that the result is 10.

    5+5의 올바른 결과를 보여 주는 Microsoft Visual Studio 디버그 콘솔의 스크린샷Screenshot of the Microsoft Visual Studio Debug Console showing the correct result of 5 + 5.

앱 디버그Debug the app

사용자가 콘솔 창에 무엇이든 입력할 수 있으므로 계산기가 예상대로 일부 입력을 처리하는지 확인하겠습니다.Since the user is free to type anything into the console window, let's make sure the calculator handles some input as expected. 프로그램을 실행하는 대신 디버깅하여 수행 내용을 단계별로 자세히 검사할 수 있습니다.Instead of running the program, let's debug it instead, so we can inspect what it's doing in detail, step-by-step.

디버거에서 앱을 실행하려면To run the app in the debugger

  1. 사용자가 입력하도록 요청받은 직후 result = c.Calculate(x, oper, y); 줄에 중단점을 설정합니다.Set a breakpoint on the result = c.Calculate(x, oper, y); line, just after the user was asked for input. 중단점을 설정하려면 편집기 창의 왼쪽 가장자리를 따라 있는 회색 세로 막대의 줄 옆을 클릭합니다.To set the breakpoint, click next to the line in the gray vertical bar along the left edge of the editor window. 빨간색 점이 나타납니다.A red dot appears.

    중단점을 나타내는 빨간 점을 만드는 사용자를 보여 주는 짧은 Visual Studio 동영상Short video of Visual Studios showing the user creating the red dot that represents a breakpoint.

    이제 프로그램을 디버깅할 때 항상 해당 줄에서 실행이 일시 중지됩니다.Now when we debug the program, it always pauses execution at that line. 프로그램이 간단한 케이스에 대해 작동하는 대략적인 아이디어가 이미 있습니다.We already have a rough idea that the program works for simple cases. 매번 실행을 일시 정지하지 않으므로 조건부로 중단점을 만듭니다.Since we don't want to pause execution every time, let's make the breakpoint conditional.

  2. 중단점을 나타내는 빨간색 점을 마우스 오른쪽 단추로 클릭하고, 조건 을 선택합니다.Right-click the red dot that represents the breakpoint, and choose Conditions. 조건의 편집 상자에 (y == 0) && (oper == '/')를 입력합니다.In the edit box for the condition, enter (y == 0) && (oper == '/'). 완료되면 닫기 단추를 선택합니다.Choose the Close button when you're done. 조건이 자동으로 저장됩니다.The condition is saved automatically.

    중단점 설정 섹션을 열고 조건부 중단점을 설정하는 사용자를 보여 주는 짧은 Visual Studio 2019 동영상Short video of Visual Studio 2019 showing the user opening the Breakpoint Settings section and setting a conditional breakpoint.

    이제 0으로 나누기를 시도하는 경우에 특히 중단점에서 실행을 일시 중지합니다.Now we pause execution at the breakpoint specifically if a division by 0 is attempted.

  3. 프로그램을 디버그하려면 F5 키를 누르거나 로컬 Windows 디버거 녹색 화살표 아이콘이 있는 도구 모음 단추를 선택합니다.To debug the program, press F5, or choose the Local Windows Debugger toolbar button that has the green arrow icon. 콘솔 앱에서 "5 - 0" 같은 코드를 입력하는 경우 프로그램은 정상적으로 작동하고 계속 실행됩니다.In your console app, if you enter something like "5 - 0", the program behaves normally and keeps running. 그러나 "10 / 0"을 입력하면 중단점에서 일시 중지됩니다.However, if you type "10 / 0", it pauses at the breakpoint. 연산자와 숫자 사이에 공백을 배치할 수도 있습니다. cin은 입력을 적절하게 구문 분석할 수 있을 만큼 지능적입니다.You can even put any number of spaces between the operator and numbers; cin is smart enough to parse the input appropriately.

    프로그램이 조건부 중단점에서 일시 중지되었음을 보여 주는 짧은 Visual Studios 동영상Short video of Visual Studios showing that the program paused at the conditional breakpoint.

디버거에서 유용한 창Useful windows in the debugger

코드를 디버그할 때마다 몇 개의 새 창이 표시되는 것을 확인할 수 있습니다.Whenever you debug your code, you may notice that some new windows appear. 이러한 창은 디버깅 환경을 지원할 수 있습니다.These windows can assist your debugging experience. 자동 창을 살펴보세요.Take a look at the Autos window. 자동 창에서는 적어도 3개 줄 이전부터 현재 줄까지 사용된 변수의 현재 값을 보여 줍니다.The Autos window shows you the current values of variables used at least three lines before and up to the current line.

자동 창The Autos window

해당 함수의 모든 변수를 보려면 로컬 창으로 전환합니다.To see all of the variables from that function, switch to the Locals window. 실제로 해당 항목이 프로그램에 미치는 영향을 확인하도록 디버깅하는 동안 이러한 변수 값을 수정할 수 있습니다.You can actually modify the values of these variables while debugging, to see what effect they would have on the program. 이 사례에서는 해당 항목을 그대로 둡니다.In this case, we'll leave them alone.

로컬 창의 스크린샷Screenshot of the Locals window.

코드 자체에 있는 변수를 마우스로 가리키기만 하면 실행이 현재 일시 중지된 경우 현재 값을 확인할 수도 있습니다.You can also just hover over variables in the code itself to see their current values where the execution is currently paused. 먼저 클릭하여 편집기 창에 포커스가 맞춰졌는지 확인합니다.Make sure the editor window is in focus by clicking on it first.

변수의 값을 표시하는 도구 설명을 보여 주는 짧은 동영상Short video showing the tooltip that appears displaying the value of the variable.

디버깅을 계속하려면To continue debugging

  1. 왼쪽의 노란색 줄은 현재 실행 지점을 보여줍니다.The yellow line on the left shows the current point of execution. 현재 줄이 Calculate을 호출하므로 F11 키를 눌러 해당 함수에서 한 단계씩 코드를 실행 합니다.The current line calls Calculate, so press F11 to Step Into the function. Calculate 함수의 본문에서 직접 찾아봅니다.You'll find yourself in the body of the Calculate function. 한 단계씩 코드 실행 에 주의하세요. 코드를 너무 많이 실행하면 많은 시간을 낭비할 수 있습니다.Be careful with Step Into; if you do it too much, you may waste a lot of time. 표준 라이브러리 함수를 포함하여, 현재 줄에서 사용하는 코드로 이동합니다.It goes into any code you use on the line you are on, including standard library functions.

  2. 이제 실행 지점이 Calculate 함수의 시작 부분에 있으므로 F10 키를 눌러 프로그램을 실행하는 중에 다음 줄로 이동합니다.Now that the point of execution is at the start of the Calculate function, press F10 to move to the next line in the program's execution. F10 키는 프로시저 단위 실행 이라고도 합니다.F10 is also known as Step Over. 프로시저 단위 실행 을 사용하여 줄의 각 파트에서 발생한 내용의 세부 정보를 살펴보지 않고 줄을 이동할 수 있습니다.You can use Step Over to move from line to line, without delving into the details of what is occurring in each part of the line. (Calculate의 본문에 도달하기 위해 수행한 대로) 다른 곳에서 호출되는 코드에 대해 더 심층적으로 알아보지 않으려면 일반적으로 한 단계씩 코드 실행 대신 프로시저 단위 실행 을 사용해야 합니다.In general you should use Step Over instead of Step Into, unless you want to dive more deeply into code that is being called from elsewhere (as you did to reach the body of Calculate).

  3. 다른 파일에서 main() 함수로 다시 이동할 때까지 계속 F10 키를 사용하여 각 줄을 프로시저 단위 실행 하고, cout 줄에서 중지합니다.Continue using F10 to Step Over each line until you get back to the main() function in the other file, and stop on the cout line.

    Calculate에서 나가기 및 결과 확인Step out of Calculate and check result

    프로그램이 예정된 내용을 수행하는 것처럼 보입니다. 첫 번째 숫자를 사용하고 두 번째로 나눕니다.It looks like the program is doing what is expected: it takes the first number, and divides it by the second. cout 줄에서 result 변수를 마우스로 가리키거나 자동 창에서 result를 살펴봅니다.On the cout line, hover over the result variable or take a look at result in the Autos window. 올바르지 않은 것 같은 “inf”로 값이 등록된 것을 확인하게 됩니다. 해당 값을 수정하세요.You'll see its value is listed as "inf", which doesn't look right, so let's fix it. cout 줄은 result에 저장된 모든 값을 출력하므로 F10 키를 사용하여 추가로 한 줄을 실행하면 콘솔 창에서는 다음을 표시합니다.The cout line just outputs whatever value is stored in result, so when you step one more line forward using F10, the console window displays:

    0으로 나누기 결과를 보여 주는 Microsoft Visual Studio 디버그 콘솔의 스크린샷Screenshot of the Microsoft Visual Studio Debug Console showing the result of dividing by zero.

    이 결과는 0으로 나누기가 정의되지 않았기 때문에 발생합니다. 따라서 프로그램에는 요청된 작업에 대한 숫자 응답이 포함되지 않습니다.This result happens because division by zero is undefined, so the program doesn't have a numerical answer to the requested operation.

"0으로 나누기" 오류를 해결하려면To fix the "divide by zero" error

사용자가 문제를 이해할 수 있도록 0으로 나누기를 더욱 원활하게 처리해 보겠습니다.Let's handle division by zero more gracefully, so a user can understand the problem.

  1. CalculatorTutorial.cpp 를 다음과 같이 변경합니다.Make the following changes in CalculatorTutorial.cpp. (편집하며 계속하기 라는 디버거 기능을 통해 편집한 대로 프로그램이 실행되도록 둘 수 있습니다.)(You can leave the program running as you edit, thanks to a debugger feature called Edit and Continue):

    // CalculatorTutorial.cpp : This file contains the 'main' function. Program execution begins and ends there.
    //
    
    #include "pch.h"
    #include <iostream>
    #include "Calculator.h"
    
    using namespace std;
    
    int main()
    {
        double x = 0.0;
        double y = 0.0;
        double result = 0.0;
        char oper = '+';
    
        cout << "Calculator Console Application" << endl << endl;
        cout << "Please enter the operation to perform. Format: a+b | a-b | a*b | a/b" << endl;
    
        Calculator c;
        while (true)
        {
            cin  >> x  >> oper  >> y;
            if (oper == '/' && y == 0)
            {
                cout << "Division by 0 exception" << endl;
                continue;
            }
            else
            {
                result = c.Calculate(x, oper, y);
            }
            cout << "Result is: " << result << endl;
        }
    
        return 0;
    }
    
  2. 이제 F5 키를 한 번 누릅니다.Now press F5 once. 사용자 입력에 대한 요청을 일시 중지해야 할 때까지 계속 프로그램을 실행합니다.Program execution continues all the way until it has to pause to ask for user input. 10 / 0을 다시 입력하세요.Enter 10 / 0 again. 이제 더 유용한 메시지가 출력됩니다.Now, a more helpful message is printed. 사용자에게는 추가 입력 메시지가 표시되고, 프로그램은 계속 정상적으로 실행됩니다.The user is asked for more input, and the program continues executing normally.

    변경 후 최종 결과를 보여 주는 Microsoft Visual Studio 디버그 콘솔의 짧은 동영상Short video of the Microsoft Visual Studio Debug Console showing the final result after changes.

    참고

    디버깅 모드에서 코드를 편집하면 코드가 부실해질 위험이 있습니다.When you edit code while in debugging mode, there is a risk of code becoming stale. 이 문제는 디버거가 계속 이전 코드를 실행하고 변경 내용을 사용하여 업데이트하지 않는 경우에 발생합니다.This happens when the debugger is still running your old code, and has not yet updated it with your changes. 디버거는 문제가 발생했음을 알려주는 대화 상자를 표시합니다.The debugger pops up a dialog to inform you when this happens. 경우에 따라 F5 키를 눌러 실행 중인 코드를 새로 고쳐야 합니다.Sometimes, you may need to press F5 to refresh the code being executed. 특히 함수를 변경하는 동시에 실행 지점이 해당 함수 내에 있는 경우 함수에서 나간 다음, 다시 들어와서 업데이트된 코드를 가져와야 합니다.In particular, if you make a change inside a function while the point of execution is inside that function, you'll need to step out of the function, then back into it again to get the updated code. 이 방법이 어떤 이유로 작동하지 않고 오류 메시지가 표시되는 경우 IDE의 맨 위에 있는 메뉴 아래의 도구 모음에서 빨간색 사각형을 클릭하여 디버깅을 중지한 다음, F5 키를 다시 입력하거나 도구 모음에서 중지 단추 옆에 있는 녹색 "재생" 화살표를 선택하여 디버깅을 시작할 수 있습니다.If that doesn't work for some reason and you see an error message, you can stop debugging by clicking on the red square in the toolbar under the menus at the top of the IDE, then start debugging again by entering F5 or by choosing the green "play" arrow beside the stop button on the toolbar.

    실행 및 디버그 바로 가기 이해Understanding the Run and Debug shortcuts

    • F5 키(또는 디버그 > 디버깅 시작)는 디버깅 세션이 활성 상태가 아닌 경우 디버깅 세션을 시작하고, 중단점에 도달하거나 프로그램에 사용자 입력이 필요할 때까지 프로그램을 실행합니다.F5 (or Debug > Start Debugging) starts a debugging session if one isn't already active, and runs the program until a breakpoint is hit or the program needs user input. 사용자 입력이 필요하지 않고 중단점에 도달할 수 없는 경우 프로그램 실행이 완료되면 프로그램이 종료되고 콘솔 창이 닫힙니다.If no user input is needed and no breakpoint is available to hit, the program terminates and the console window closes itself when the program finishes running. "Hello World"와 같은 프로그램을 실행한 경우 F5 키를 입력하여 창을 열어두기 전에 Ctrl+F5 키를 사용하거나 중단점을 설정합니다.If you have something like a "Hello World" program to run, use Ctrl+F5 or set a breakpoint before you enter F5 to keep the window open.
    • Ctrl+F5 키(또는 디버그 > 디버깅하지 않고 시작)는 디버그 모드로 전환하지 않고 애플리케이션을 실행합니다.Ctrl+F5 (or Debug > Start Without Debugging) runs the application without going into debug mode. 이 방법이 디버깅보다 약간 빠릅니다. 또한 프로그램 실행이 완료되면 콘솔 창을 열어 둡니다.This is slightly faster than debugging, and the console window stays open after the program finishes executing.
    • F10 키(프로시저 단위 실행 이라고도 함)를 통해 코드를 한 줄씩 반복하고, 코드를 실행하는 방법 및 실행의 각 단계에서 변수 값을 시각화할 수 있습니다.F10 (known as Step Over) lets you iterate through code, line-by-line, and visualize how the code is run and what variable values are at each step of execution.
    • F11 키(한 단계씩 코드 실행 이라고도 함)는 실행 줄에서 호출되는 함수를 한 단계씩 코드 실행한다는 점을 제외하고 프로시저 단위 실행 과 유사하게 작동합니다.F11 (known as Step Into) works similarly to Step Over, except it steps into any functions called on the line of execution. 예를 들어 실행되는 줄이 함수를 호출하는 경우 F11 키를 누르면 함수의 본문에 포인터를 이동시킵니다. 따라서 시작한 줄로 이동하기 전에 실행되는 함수의 코드를 수행할 수 있습니다.For example, if the line being executed calls a function, pressing F11 moves the pointer into the body of the function, so you can follow the function's code being run before coming back to the line you started at. F10 키를 누르면 함수 호출을 프로시저 단위로 실행하고 다음 줄로 이동합니다. 여전히 함수 호출이 실행되지만 프로그램은 표시되는 내용을 일시 중지하지 않습니다.Pressing F10 steps over the function call and just moves to the next line; the function call still happens, but the program doesn't pause to show you what it's doing.

앱 닫기Close the app

  • 계속 실행 중이면 계산기 앱의 콘솔 창을 닫습니다.If it's still running, close the console window for the calculator app.

완성된 앱The finished app

지금까지Congratulations! 계산기 앱의 코드를 완료하고, Visual Studio에서 빌드하고 디버깅했습니다.You've completed the code for the calculator app, and built and debugged it in Visual Studio.

다음 단계Next steps

C++용 Visual Studio에 대한 자세한 정보Learn more about Visual Studio for C++