본문 바로가기
C++ 프로그래밍

(5) C++ 입출력 (Input & Output)

by 제임스-지식보고 2023. 6. 21.
728x90
반응형

이번에 다뤄볼 내용은 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++로 입력 및 출력 작업을 마스터하면 프로그램에서 사용자와 상호 작용하고 정보를 표시하며 데이터를 효율적으로 처리하는 데 필요한 기술을 습득하는 기회였길 바랍니다:) 

728x90
반응형