C++도 C언어와 마찬가지로 문자 출력을 정렬하는 방법들이 있다.

 

#include <iomanip>

 

 

 

setw()


setw()는 출력되는 공간을 설정할 수 있다.

꼭 출력하고자 하는 것의 왼쪽에 위치해야한다.

 

1
2
int value = 12345678;
cout << "(" << setw(20<< value << ")" << endl;
cs

위와 같이 출력.

자동으로 오른쪽 정렬이 된다.

총 20칸이 할당된다.

 

 

setprecision()


출력되는 칸을 구체적으로 설정한다.

 

 

1
2
3
4
5
6
7
8
9
    double number1 = 132.364, number2 = 26.91;
    double quotient = number1 / number2;
 
    cout << quotient << endl;
    cout << setprecision(5<< quotient << endl;
    cout << setprecision(4<< quotient << endl;
    cout << setprecision(3<< quotient << endl;
    cout << setprecision(2<< quotient << endl;
    cout << setprecision(1<< quotient << endl;
cs

위와같이 출력되는 칸의 수를 설정한다.

반올림 된다.

 

 

fixed


아래와 같은 유리수를 그냥 출력한다면

아래와 같이 scientific notation  표현식으로 출력된다.

1
2
3
4
5
    float x = 1231412.32;
    float y = 3435897.43;
 
    cout << x << endl;
    cout << y << endl;
cs

이를 방지하기 위해  fixed를 사용한다.

 

1
2
3
4
5
6
    cout << fixed;
    float x = 1231412.32;
    float y = 3435897.43;
 
    cout << x << endl;
    cout << y << endl;
cs

추가로 fixed는 setprecision() 같이쓰면setprecision() 의 기능이 포인트의 개수를 조정하는 것으로 바뀐다.

1
2
3
4
5
6
7
8
9
10
11
12
13
    float x = 1122.121241223;
    
    cout << fixed << setprecision(4);
    cout << x << endl;
        
    cout << fixed << setprecision(3);
    cout << x << endl;
        
    cout << fixed << setprecision(2);
    cout << x << endl;
        
    cout << fixed << setprecision(1);
    cout << x << endl;
cs

위와 같이 포인트의 출력 개수가 변경된다.

 

 

showpoint


cout은 만약 포인트에 값이 없다면(12.0 과 같이) 자동적으로 포인트를 제거하고 출력한다.

 

1
2
3
4
5
    float x = 12;
    float y = 97;
 
    cout << x << endl;
    cout << y << endl;
cs

 

하지만 showpoint를 사용한다면 표시를 해준다.

 

1
2
3
4
5
6
    cout << showpoint;
    float x = 12;
    float y = 97;
 
    cout << x << endl;
    cout << y << endl;
cs

 

left ,right


setw()와 left, right를 이용해서 출력을 왼쪽 또는 오른쪽 정렬할 수 있다.

 

1
2
3
4
5
    float x = 1212;
    float y = 9712;
 
    cout << "(" << left << setw(20<< x << ")" << endl;
    cout << "(" << right << setw(20<< x << ")" << endl;
cs

 

주의점은

항상 출력하고자 하는 것 바로 옆에 써야한다.

 

 

응용


아래와 같이 응용해서 사용 할 수 있다.

 

 

1
2
3
4
5
6
7
8
9
    float x = 12121.1;
    float y = 9712;
    float z = 23134.234434;
 
    cout << fixed << showpoint << setprecision(2);
 
    cout << "(" << right << setw(10<< x << ")" << endl;
    cout << "(" << right << setw(10<< y << ")" << endl;
    cout << "(" << right << setw(10<< z << ")" << endl;
cs

위와같이

포인트를 2칸만 출력하고 오른쪽 정렬시킬 수 있다.

 

 


 

출처 Starting Out With C++ Early Objects ninTH edition Tony Gaddis • Judy Walters • Godfrey Muganda

'C++ > 기초' 카테고리의 다른 글

파일 입출력 (fstream)  (0) 2017.10.27

언리얼 엔진에서 컴파일시 에러 출력이 한글일 경우 깨지는 현상이 있다.

 

이는 컴파일러 자체에서 한글 출력형식에 문제가 있는걸로 보인다.

(마소든 언리얼이든 둘중에 하나는 고쳐야 하지 않겠니?)

 

임시로 한글이 출력 안되고 영어가 출력되게 변경해주는 방편을 사용한다.

 

비주얼 스튜디오가 깔려있는 폴더에서 컴파일러의 한글 출력부분을 제거해서 영어로 나오도록 한다.

 

아래 폴더로 가서

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\Hostx64\x64

위 폴더의 1042 폴더를 제거하여 한글출력을 막고 영어로 출력시킨다.

물론 32비트로 컴파일시에는 x86의 1042 폴더도 삭제한다.

 

다른 버전의 스튜디오도 비슷할껄로 예상된다.

 

위와 같이 영어로 출력된다.

 

 

또한, 다른 방법을 찾은듯 하다.

(이방법은 문제가 많다. 추천하지 않는다.)

제어판 -> 국가또는지역 -> 관리자 옵션 -> 시스템 로컬 변경 -> UTF8 사용 채크후 재부팅.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- 위와 같이 빨간줄이 뜬다.

 

-defines 부분을 아래 텍스트로 변경한다.

 

            "defines": [
                "IS_PROGRAM=0",
                "UE_EDITOR=1",
                "ENABLE_PGO_PROFILE=0",
                "USE_VORBIS_FOR_STREAMING=1",
                "USE_XMA2_FOR_STREAMING=1",
                "WITH_DEV_AUTOMATION_TESTS=1",
                "WITH_PERF_AUTOMATION_TESTS=1",
                "UNICODE",
                "_UNICODE",
                "__UNREAL__",
                "IS_MONOLITHIC=0",
                "WITH_ENGINE=1",
                "WITH_UNREAL_DEVELOPER_TOOLS=1",
                "WITH_APPLICATION_CORE=1",
                "WITH_COREUOBJECT=1",
                "USE_STATS_WITHOUT_ENGINE=0",
                "WITH_PLUGIN_SUPPORT=0",
                "WITH_ACCESSIBILITY=1",
                "WITH_PERFCOUNTERS=1",
                "USE_LOGGING_IN_SHIPPING=0",
                "WITH_LOGGING_TO_MEMORY=0",
                "USE_CACHE_FREED_OS_ALLOCS=1",
                "USE_CHECKS_IN_SHIPPING=0",
                "WITH_EDITOR=1",
                "WITH_SERVER_CODE=1",
                "WITH_CEF3=1",
                "WITH_LIVE_CODING=1",
                "WITH_XGE_CONTROLLER=1",
                "UBT_MODULE_MANIFEST=\"UE4Editor.modules\"",
                "UBT_MODULE_MANIFEST_DEBUGGAME=\"UE4Editor-Win64-DebugGame.modules\"",
                "UBT_COMPILED_PLATFORM=Win64",
                "UBT_COMPILED_TARGET=Editor",
                "UE_APP_NAME=\"UE4Editor\"",
                "NDIS_MINIPORT_MAJOR_VERSION=0",
                "WIN32=1",
                "_WIN32_WINNT=0x0601",
                "WINVER=0x0601",
                "PLATFORM_WINDOWS=1",
                "OVERRIDE_PLATFORM_HEADER_NAME=Windows",
                "NDEBUG=1",
                "UE_BUILD_DEVELOPMENT=1",
                "UE_IS_ENGINE_MODULE=0",
                "IMPLEMENT_ENCRYPTION_KEY_REGISTRATION()=",
                "IMPLEMENT_SIGNING_KEY_REGISTRATION()=",
                "DEPRECATED_FORGAME=DEPRECATED",
                "UE_DEPRECATED_FORGAME=UE_DEPRECATED",
                "INCLUDE_CHAOS=0",
                "WITH_PHYSX=1",
                "WITH_CHAOS=0",
                "WITH_CHAOS_CLOTHING=0",
                "WITH_CHAOS_NEEDS_TO_BE_FIXED=0",
                "PHYSICS_INTERFACE_PHYSX=1",
                "WITH_APEX=1",
                "WITH_APEX_CLOTHING=1",
                "WITH_CLOTH_COLLISION_DETECTION=1",
                "WITH_PHYSX_COOKING=1",
                "WITH_NVCLOTH=1",
                "WITH_CUSTOM_SQ_STRUCTURE=0",
                "WITH_IMMEDIATE_PHYSX=0",
                "GPUPARTICLE_LOCAL_VF_ONLY=0",
                "ENGINE_VTABLE=DLLIMPORT_VTABLE",
                "ENGINE_API=",
                "UE_ENABLE_ICU=1",
                "WITH_VS_PERF_PROFILER=0",
                "WITH_DIRECTXMATH=0",
                "WITH_MALLOC_STOMP=1",
                "CORE_VTABLE=DLLIMPORT_VTABLE",
                "CORE_API=",
                "TRACELOG_VTABLE=DLLIMPORT_VTABLE",
                "TRACELOG_API=",
                "COREUOBJECT_VTABLE=DLLIMPORT_VTABLE",
                "COREUOBJECT_API=",
                "NETCORE_VTABLE=DLLIMPORT_VTABLE",
                "NETCORE_API=",
                "APPLICATIONCORE_VTABLE=DLLIMPORT_VTABLE",
                "APPLICATIONCORE_API=",
                "RHI_VTABLE=DLLIMPORT_VTABLE",
                "RHI_API=",
                "JSON_VTABLE=DLLIMPORT_VTABLE",
                "JSON_API=",
                "WITH_FREETYPE=1",
                "SLATECORE_VTABLE=DLLIMPORT_VTABLE",
                "SLATECORE_API=",
                "INPUTCORE_VTABLE=DLLIMPORT_VTABLE",
                "INPUTCORE_API=",
                "SLATE_VTABLE=DLLIMPORT_VTABLE",
                "SLATE_API=",
                "WITH_UNREALPNG=1",
                "WITH_UNREALJPEG=1",
                "WITH_UNREALEXR=1",
                "IMAGEWRAPPER_VTABLE=DLLIMPORT_VTABLE",
                "IMAGEWRAPPER_API=",
                "MESSAGING_VTABLE=DLLIMPORT_VTABLE",
                "MESSAGING_API=",
                "MESSAGINGCOMMON_VTABLE=DLLIMPORT_VTABLE",
                "MESSAGINGCOMMON_API=",
                "RENDERCORE_VTABLE=DLLIMPORT_VTABLE",
                "RENDERCORE_API=",
                "SOCKETS_PACKAGE=1",
                "SOCKETS_VTABLE=DLLIMPORT_VTABLE",
                "SOCKETS_API=",
                "ASSETREGISTRY_VTABLE=DLLIMPORT_VTABLE",
                "ASSETREGISTRY_API=",
                "ENGINEMESSAGES_VTABLE=DLLIMPORT_VTABLE",
                "ENGINEMESSAGES_API=",
                "ENGINESETTINGS_VTABLE=DLLIMPORT_VTABLE",
                "ENGINESETTINGS_API=",
                "SYNTHBENCHMARK_VTABLE=DLLIMPORT_VTABLE",
                "SYNTHBENCHMARK_API=",
                "RENDERER_VTABLE=DLLIMPORT_VTABLE",
                "RENDERER_API=",
                "GAMEPLAYTAGS_VTABLE=DLLIMPORT_VTABLE",
                "GAMEPLAYTAGS_API=",
                "PACKETHANDLER_VTABLE=DLLIMPORT_VTABLE",
                "PACKETHANDLER_API=",
                "RELIABILITYHANDLERCOMPONENT_VTABLE=DLLIMPORT_VTABLE",
                "RELIABILITYHANDLERCOMPONENT_API=",
                "AUDIOPLATFORMCONFIGURATION_VTABLE=DLLIMPORT_VTABLE",
                "AUDIOPLATFORMCONFIGURATION_API=",
                "MESHDESCRIPTION_VTABLE=DLLIMPORT_VTABLE",
                "MESHDESCRIPTION_API=",
                "STATICMESHDESCRIPTION_VTABLE=DLLIMPORT_VTABLE",
                "STATICMESHDESCRIPTION_API=",
                "PAKFILE_VTABLE=DLLIMPORT_VTABLE",
                "PAKFILE_API=",
                "RSA_VTABLE=DLLIMPORT_VTABLE",
                "RSA_API=",
                "NETWORKREPLAYSTREAMING_VTABLE=DLLIMPORT_VTABLE",
                "NETWORKREPLAYSTREAMING_API=",
                "PHYSICSCORE_VTABLE=DLLIMPORT_VTABLE",
                "PHYSICSCORE_API=",
                "COMPILE_WITHOUT_UNREAL_SUPPORT=0",
                "CHAOS_MEMORY_TRACKING=0",
                "CHAOS_VTABLE=DLLIMPORT_VTABLE",
                "CHAOS_API=",
                "CHAOS_CHECKED=0",
                "CHAOSCORE_VTABLE=DLLIMPORT_VTABLE",
                "CHAOSCORE_API=",
                "INTEL_ISPC=1",
                "VORONOI_VTABLE=DLLIMPORT_VTABLE",
                "VORONOI_API=",
                "FIELDSYSTEMCORE_VTABLE=DLLIMPORT_VTABLE",
                "FIELDSYSTEMCORE_API=",
                "WITH_PHYSX_RELEASE=0",
                "UE_PHYSX_SUFFIX=PROFILE",
                "UE_APEX_SUFFIX=PROFILE",
                "APEX_UE4=1",
                "APEX_STATICALLY_LINKED=0",
                "WITH_APEX_LEGACY=1",
                "SIGNALPROCESSING_VTABLE=DLLIMPORT_VTABLE",
                "SIGNALPROCESSING_API=",
                "WITH_RECAST=1",
                "UNREALED_VTABLE=DLLIMPORT_VTABLE",
                "UNREALED_API=",
                "BSPMODE_VTABLE=DLLIMPORT_VTABLE",
                "BSPMODE_API=",
                "DIRECTORYWATCHER_VTABLE=DLLIMPORT_VTABLE",
                "DIRECTORYWATCHER_API=",
                "DOCUMENTATION_VTABLE=DLLIMPORT_VTABLE",
                "DOCUMENTATION_API=",
                "LOAD_PLUGINS_FOR_TARGET_PLATFORMS=1",
                "PROJECTS_VTABLE=DLLIMPORT_VTABLE",
                "PROJECTS_API=",
                "SANDBOXFILE_VTABLE=DLLIMPORT_VTABLE",
                "SANDBOXFILE_API=",
                "EDITORSTYLE_VTABLE=DLLIMPORT_VTABLE",
                "EDITORSTYLE_API=",
                "SOURCE_CONTROL_WITH_SLATE=1",
                "SOURCECONTROL_VTABLE=DLLIMPORT_VTABLE",
                "SOURCECONTROL_API=",
                "UNREALEDMESSAGES_VTABLE=DLLIMPORT_VTABLE",
                "UNREALEDMESSAGES_API=",
                "GAMEPLAYDEBUGGER_VTABLE=DLLIMPORT_VTABLE",
                "GAMEPLAYDEBUGGER_API=",
                "BLUEPRINTGRAPH_VTABLE=DLLIMPORT_VTABLE",
                "BLUEPRINTGRAPH_API=",
                "EDITORSUBSYSTEM_VTABLE=DLLIMPORT_VTABLE",
                "EDITORSUBSYSTEM_API=",
                "HTTP_PACKAGE=1",
                "CURL_ENABLE_DEBUG_CALLBACK=1",
                "CURL_ENABLE_NO_TIMEOUTS_OPTION=1",
                "HTTP_VTABLE=DLLIMPORT_VTABLE",
                "HTTP_API=",
                "UNREALAUDIO_VTABLE=DLLIMPORT_VTABLE",
                "UNREALAUDIO_API=",
                "FUNCTIONALTESTING_VTABLE=DLLIMPORT_VTABLE",
                "FUNCTIONALTESTING_API=",
                "AUTOMATIONCONTROLLER_VTABLE=DLLIMPORT_VTABLE",
                "AUTOMATIONCONTROLLER_API=",
                "LOCALIZATION_VTABLE=DLLIMPORT_VTABLE",
                "LOCALIZATION_API=",
                "WITH_SNDFILE_IO=1",
                "AUDIOEDITOR_VTABLE=DLLIMPORT_VTABLE",
                "AUDIOEDITOR_API=",
                "AUDIOMIXER_VTABLE=DLLIMPORT_VTABLE",
                "AUDIOMIXER_API=",
                "TARGETPLATFORM_VTABLE=DLLIMPORT_VTABLE",
                "TARGETPLATFORM_API=",
                "UELIBSAMPLERATE_VTABLE=DLLIMPORT_VTABLE",
                "UELIBSAMPLERATE_API=",
                "LEVELEDITOR_VTABLE=DLLIMPORT_VTABLE",
                "LEVELEDITOR_API=",
                "SETTINGS_VTABLE=DLLIMPORT_VTABLE",
                "SETTINGS_API=",
                "INTROTUTORIALS_VTABLE=DLLIMPORT_VTABLE",
                "INTROTUTORIALS_API=",
                "HEADMOUNTEDDISPLAY_VTABLE=DLLIMPORT_VTABLE",
                "HEADMOUNTEDDISPLAY_API=",
                "VREDITOR_VTABLE=DLLIMPORT_VTABLE",
                "VREDITOR_API=",
                "COMMONMENUEXTENSIONS_VTABLE=DLLIMPORT_VTABLE",
                "COMMONMENUEXTENSIONS_API=",
                "LANDSCAPE_VTABLE=DLLIMPORT_VTABLE",
                "LANDSCAPE_API=",
                "PROPERTYEDITOR_VTABLE=DLLIMPORT_VTABLE",
                "PROPERTYEDITOR_API=",
                "ACTORPICKERMODE_VTABLE=DLLIMPORT_VTABLE",
                "ACTORPICKERMODE_API=",
                "SCENEDEPTHPICKERMODE_VTABLE=DLLIMPORT_VTABLE",
                "SCENEDEPTHPICKERMODE_API=",
                "DETAILCUSTOMIZATIONS_VTABLE=DLLIMPORT_VTABLE",
                "DETAILCUSTOMIZATIONS_API=",
                "CLASSVIEWER_VTABLE=DLLIMPORT_VTABLE",
                "CLASSVIEWER_API=",
                "GRAPHEDITOR_VTABLE=DLLIMPORT_VTABLE",
                "GRAPHEDITOR_API=",
                "STRUCTVIEWER_VTABLE=DLLIMPORT_VTABLE",
                "STRUCTVIEWER_API=",
                "CONTENTBROWSER_VTABLE=DLLIMPORT_VTABLE",
                "CONTENTBROWSER_API=",
                "ENABLE_HTTP_FOR_NFS=1",
                "NETWORKFILESYSTEM_VTABLE=DLLIMPORT_VTABLE",
                "NETWORKFILESYSTEM_API=",
                "UMG_VTABLE=DLLIMPORT_VTABLE",
                "UMG_API=",
                "MOVIESCENE_VTABLE=DLLIMPORT_VTABLE",
                "MOVIESCENE_API=",
                "TIMEMANAGEMENT_VTABLE=DLLIMPORT_VTABLE",
                "TIMEMANAGEMENT_API=",
                "MOVIESCENETRACKS_VTABLE=DLLIMPORT_VTABLE",
                "MOVIESCENETRACKS_API=",
                "ANIMATIONCORE_VTABLE=DLLIMPORT_VTABLE",
                "ANIMATIONCORE_API=",
                "PROPERTYPATH_VTABLE=DLLIMPORT_VTABLE",
                "PROPERTYPATH_API=",
                "NAVIGATIONSYSTEM_VTABLE=DLLIMPORT_VTABLE",
                "NAVIGATIONSYSTEM_API=",
                "MESHDESCRIPTIONOPERATIONS_VTABLE=DLLIMPORT_VTABLE",
                "MESHDESCRIPTIONOPERATIONS_API=",
                "MESHBUILDER_VTABLE=DLLIMPORT_VTABLE",
                "MESHBUILDER_API=",
                "MATERIALSHADERQUALITYSETTINGS_VTABLE=DLLIMPORT_VTABLE",
                "MATERIALSHADERQUALITYSETTINGS_API=",
                "INTERACTIVETOOLSFRAMEWORK_VTABLE=DLLIMPORT_VTABLE",
                "INTERACTIVETOOLSFRAMEWORK_API=",
                "TOOLMENUSEDITOR_VTABLE=DLLIMPORT_VTABLE",
                "TOOLMENUSEDITOR_API=",
                "WITH_OGGVORBIS=1",
                "XAUDIO2_VTABLE=DLLIMPORT_VTABLE",
                "XAUDIO2_API=",
                "AUDIOMIXERXAUDIO2_VTABLE=DLLIMPORT_VTABLE",
                "AUDIOMIXERXAUDIO2_API=",
                "ASSETTAGSEDITOR_VTABLE=DLLIMPORT_VTABLE",
                "ASSETTAGSEDITOR_API=",
                "COLLECTIONMANAGER_VTABLE=DLLIMPORT_VTABLE",
                "COLLECTIONMANAGER_API=",
                "ADDCONTENTDIALOG_VTABLE=DLLIMPORT_VTABLE",
                "ADDCONTENTDIALOG_API=",
                "USE_EMBREE=1",
                "MESHUTILITIES_VTABLE=DLLIMPORT_VTABLE",
                "MESHUTILITIES_API=",
                "MESHMERGEUTILITIES_VTABLE=DLLIMPORT_VTABLE",
                "MESHMERGEUTILITIES_API=",
                "HIERARCHICALLODUTILITIES_VTABLE=DLLIMPORT_VTABLE",
                "HIERARCHICALLODUTILITIES_API=",
                "MESHREDUCTIONINTERFACE_VTABLE=DLLIMPORT_VTABLE",
                "MESHREDUCTIONINTERFACE_API=",
                "ASSETTOOLS_VTABLE=DLLIMPORT_VTABLE",
                "ASSETTOOLS_API=",
                "KISMETCOMPILER_VTABLE=DLLIMPORT_VTABLE",
                "KISMETCOMPILER_API=",
                "GAMEPLAYTASKS_VTABLE=DLLIMPORT_VTABLE",
                "GAMEPLAYTASKS_API=",
                "WITH_GAMEPLAY_DEBUGGER=1",
                "AIMODULE_VTABLE=DLLIMPORT_VTABLE",
                "AIMODULE_API=",
                "KISMET_VTABLE=DLLIMPORT_VTABLE",
                "KISMET_API=",
                "PHYSICSSQ_VTABLE=DLLIMPORT_VTABLE",
                "PHYSICSSQ_API=",
                "CHAOSSOLVERS_VTABLE=DLLIMPORT_VTABLE",
                "CHAOSSOLVERS_API=",
                "GEOMETRYCOLLECTIONCORE_VTABLE=DLLIMPORT_VTABLE",
                "GEOMETRYCOLLECTIONCORE_API=",
                "GEOMETRYCOLLECTIONSIMULATIONCORE_VTABLE=DLLIMPORT_VTABLE",
                "GEOMETRYCOLLECTIONSIMULATIONCORE_API=",
                "CLOTHINGSYSTEMRUNTIMEINTERFACE_VTABLE=DLLIMPORT_VTABLE",
                "CLOTHINGSYSTEMRUNTIMEINTERFACE_API=",
                "AUDIOMIXERCORE_VTABLE=DLLIMPORT_VTABLE",
                "AUDIOMIXERCORE_API=",
                "UE_PROJECT_NAME=MyProject",
                "MYPROJECT_VTABLE=DLLEXPORT_VTABLE",
                "MYPROJECT_API="
            ],

 

- 다음으로 3번째 인클루드에 빨간줄을 없애기 위해서 전구를 누르고 Add한다

 

 

그러면 c/c++ extension에 아래와 같이 추가된다.

-마지막으로 아래와 같이 defines 부분에 자기 자신의 프로젝트명으로 변경시켜준다.

 

출처 : www.youtube.com/watch?v=yAUgFZh28aA&ab_channel=IbbiBhai

+ Recent posts