이번에 다뤄볼 내용은 UI (User Interface)를 사용한 입출력문의 사용법입니다
먼저 한가지의 전제를 둔다면
제 블로그에서는 C++이더라도 입출력 문법에서 cout / cin 을 사용하지 않습니다
이유)
1) 코딩은 말하듯 해야하며 그래야 의미전달이 되어야 하기에 cout / cin 대신에 printf / scanf 를 사용할 예정입니다
2) C++이란 C언어 문법과 구조를 바탕으로 업그레이드 한 언어이기에 굳이 C++에만 있는 cout / cin 대신에 printf / scanf 를
사용해서 차후 Python 이나 다른언어 학습 시 큰 차이를 느끼지 않도록 하겠습니다
printf 출력문 사용법
출력문 printf
printf("Hello world ");
(사용법)
1) printf 함수를 호출 ( 함수명인 printf와 함수라는 것을 나타내는 '()' →printf() )
2) UI에 출력할 문장을 " " 큰따옴표 사이에 입력 ( printf("Hello world") )
3) 함수 사용 끝엔 ';' semicolon을 찍어 마무리
int nAge;
printf("I am %d years old", nAge);
(사용법)
1) printf 함수를 호출 ( 함수명인 printf와 함수라는 것을 나타내는 '()' →printf() )
2) UI에 출력할 문장을 " " 큰따옴표 사이에 입력 ( printf("Hello world") )
3) " " 큰따옴표 사이에 출력하고 싶은 변수의 값을 %d 를 사용하여 출력
- 출력할 변수의 갑이 int 라면 %d
- 출력할 변수의 갑이 char 라면 %c
- 출력할 변수의 갑이 float 라면 %f
4) %d 자리에 들어올 변수를 " " 뒤, 쉼표 뒤 입력 (예제에서는 nAge)
5) 함수 사용 끝엔 ';' semicolon을 찍어 마무리
조금 연습해보자
int nNum = 10;
printf("The value of num is: %d\n", nNum);
(위의 예제에서 '\n' 은 출력문에서 줄바꿈을 위해서 사용되었다)
double dPi = 3.14159;
printf("The value of pi is: %.2f\n", dPi);
(위의 예제에서 '%.2f' 는 출력문에서 double 데이터를 소수점 2자리까지 출력하기 위해서 사용되었다)
scanf 입력문 사용법
입력문 scanf
int nAge;
printf("Enter your age: ");
scanf("%d", &nAge);
printf("your age is %d", nAge);
(Output)
Enter your age: 5
your age is 5
(사용법)
1) scanf 함수를 호출 ( 함수명인 scanf와 함수라는 것을 나타내는 '()' →scanf() )
2) UI에서 입력받을 데이터 타입을 " " 큰따옴표 사이에 입력 ( printf("%d") )
- 입력받을 값이 int 라면 %d
- 입력받을 값이 char 라면 %c
- 입력받을 값이 float 라면 %f
4) %d 자리에 들어온 값을 같은 데이터 타입 변수인 nAge에 저장 (예제에서는 &nAge)
- 저장 시에는 꼭 레퍼런스 reference 오퍼레이터인 '&' 를 사용해서 값을 변수에 저장
- scanf 함수 사용 후에는 자동적으로 줄바꿈이 이루어지기에 escape sequence 인 '\n' 사용하지 않아도 오케이
5) 함수 사용 끝엔 ';' semicolon을 찍어 마무리
조금 연습해보자
(1)
float height;
printf("Enter your height (in meters): ");
scanf("%f", &height);
(2)
char name[50];
printf("Enter your name: ");
scanf(" %[^\n]s", name);
"cout / cin"과 "printf / scanf"의 차이점
C++ I/O Streams (cout / cin):
장점
유형 안전: 데이터 유형은 스트림에 의해 자동으로 처리됩니다.
초보자가 사용하기 쉽고 이해하기 쉽습니다.
객체 지향 접근 방식은 확장성을 제공합니다.
단점
C 스타일 I/O에 비해 성능이 느립니다.
경우에 따라 형식에 대한 제한적인 제어.
C-style I/O Functions (printf / scanf):
장점
C++ I/O 스트림에 비해 성능이 빠릅니다.
(포맷에 대한 세부적인 제어)
단점
형식 안전성 감소: 형식 지정자가 잘못되면 정의되지 않은 동작이 발생할 수 있습니다.
형식 지정자 및 변환 문자에 대한 자세한 이해가 필요합니다.
Conclusion
이 강의에서는 C++의 입력 및 출력 작업에 대해 알아봅니다.
사용자와 상호 작용하고 입력을 읽고 콘솔에 출력을 표시하는 방법에 대해 배웠습니다.
이 강의는 사용자와 상호 작용하거나 정보를 표시하는 프로그램에서 입력 및 출력 작업의 중요성을 강조하는 것으로 시작합니다.
C++의 스트림 개념과 표준 입력(cin) 및 표준 출력(cout) 스트림의 역할을 이해하게 됩니다.
다음으로, 스캔 기능을 사용하여 사용자의 입력을 읽는 방법을 배웠습니다.
정수, 부동 소수점 숫자, 문자 및 문자열과 같은 다양한 데이터 유형을 읽는 방법을 확인했습니다.
또한 콘솔로 데이터를 출력하기 위한 printf 기능에 대해서도 살펴보았습니다.
이 강의에서는 출력의 모양을 제어할 수 있도록 형식 지정자와 변환 문자를 사용한 형식 지정 기법을 설명하였습니다.
C++ I/O 스트림(cout/cin)과 C-style I/O 함수(printf/scanf)를 비교하여 각 접근 방식의 장점과 단점을 강조하여 제시되었습니다.
C++로 입력 및 출력 작업을 마스터하면 프로그램에서 사용자와 상호 작용하고 정보를 표시하며 데이터를 효율적으로 처리하는 데 필요한 기술을 습득하는 기회였길 바랍니다:)
'C++ 프로그래밍' 카테고리의 다른 글
(7) C++ 반복문 (for, while, do-while loop) (71) | 2024.01.13 |
---|---|
(4) C++ 연산자 (Operator) (1) | 2023.06.20 |
(3) C++ 변수의 데이터 타입 & Variables(변수) (0) | 2023.06.04 |
(2) C++ 역사 및 배경 (History and Background) (0) | 2023.06.04 |
(1) C++ 커리큘럼 (0) | 2023.06.03 |