루리코딩 세상

"scanf" 찾아보기 본문

이론/C++

"scanf" 찾아보기

루리딩 2025. 5. 28. 09:41

📌 scanf란?

scanf는 **표준 입력(키보드)**으로부터 값을 받아들이는 함수입니다.

📚 정의: int scanf(const char *format, ...);
📁 포함 헤더: #include <stdio.h>

✅ 1. C언어에서의 사용 (stdio.h)

#include <stdio.h>

int main() {
    int age;
    printf("나이를 입력하세요: ");
    scanf("%d", &age);  // 입력받은 값을 age 변수에 저장
    printf("당신의 나이는 %d세입니다.\n", age);
    return 0;
}

📌 주요 포맷 문자열(format string)

포맷 의미
%d 정수 입력
%f 실수 입력
%c 문자 입력
%s 문자열 입력

🧠 %d, %f 등 뒤에 오는 변수는 반드시 **주소(&)**를 써야 해요!

✅ 2. C++에서도 사용할 수 있는가? (stdio.h 사용 시)

 
#include <stdio.h>

int main() {
    int number;
    scanf("%d", &number);
    printf("입력한 숫자: %d\n", number);
    return 0;
}

 

  • C++에서도 stdio.h를 포함하면 scanf를 사용할 수 있습니다.
  • 하지만 **C++에서는 cin과 cout (iostream 방식)**을 사용하는 것이 권장됩니다.

✅ 3. iostream 방식과의 차이점

항목  scanf (stdio.h) cin (iostream)
언어 스타일 C 스타일 C++ 스타일
사용 편의성 포맷 지정 필요 포맷 필요 없음
타입 안정성 포맷과 타입이 일치해야 함 컴파일러가 타입 추론
버퍼 제어 더 빠름, 유연함 상대적으로 느림, 명확함
사용 예시 scanf("%d", &x); cin >> x;

📌 C++에서의 예:

#include <iostream>
using namespace std;

int main() {
    int number;
    cout << "숫자 입력: ";
    cin >> number;
    cout << "입력한 숫자: " << number << endl;
    return 0;
}

 

✅ 4. 어떤 걸 써야 할까?

상황 추천 방식
C언어 프로젝트 scanf (stdio.h)
C++ 프로젝트 cin / cout (iostream)
빠른 입력이 필요한 경우 (e.g. 알고리즘 문제) scanf도 가능하지만, 보통 C++에서는 ios::sync_with_stdio(false); 사용

🧠 정리 요약

질문 요약
scanf는 어떤 함수인가요? 표준 입력을 받아오는 C언어의 입력 함수입니다.
C++에서도 사용할 수 있나요? #include <stdio.h>로 사용 가능하지만, 보통은 cin을 사용합니다.
scanf vs cin 차이점은? scanf는 빠르지만 포맷 지정 필요, cin은 타입 추론이 되어 편리합니다.
기본적인 C에서도 사용하나요? 네, scanf는 C언어의 대표적인 입력 함수입니다.

 

'이론 > C++' 카테고리의 다른 글

RTTI(RunTime Type Information) - typeinfo  (0) 2025.05.30
C++ 외부 종속성 : String  (0) 2025.05.28
Pointer : * 포인터 연산자  (1) 2025.05.24
스레드(Thread) 정리해보기  (4) 2025.05.23
C++ 람다 함수(Lambda)  (0) 2025.05.22