>백엔드 개발 >C++ >C에서 `std::cin`과 `std::cin.getline()`의 주요 차이점은 무엇입니까?

C에서 `std::cin`과 `std::cin.getline()`의 주요 차이점은 무엇입니까?

DDD
DDD원래의
2024-12-08 04:36:13219검색

What's the Key Difference Between `std::cin` and `std::cin.getline()` in C  ?

std::cin.getline()과 std::cin의 차이점 이해

C에서 입력 및 출력 작업을 할 때, std::cin.getline()과 std::cin 사이의 미묘한 차이를 이해하는 것이 중요합니다. 둘 다 표준 입력 개체 std::cin에 속하지만 서로 다른 목적을 제공하고 입력을 다르게 처리합니다.

std::cin.getline()

자세히 살펴보겠습니다. 표준::cin.getline(). std:: 네임스페이스에는 표준 라이브러리의 광범위한 유형, 함수 및 객체 컬렉션이 들어 있습니다. std::cin은 표준 문자 입력을 나타내는 객체 중 하나입니다. 표준 입력에서 문자를 추출하는 메소드와 함수를 제공합니다.

std::cin.getline()은 왼쪽 객체(여기서는 std)에서 한 줄의 문자를 검색하는 std::cin의 메소드입니다. ::cin). 개행 문자(n)를 만나거나 지정된 최대 문자 수에 도달하거나 입력이 부족할 때까지 문자를 계속 읽습니다.

std::cin 대 std::cin.getline( )

std::cin과 std::cin.getline()의 주요 차이점은 공백과 줄 바꿈을 처리하는 방법에 있습니다. 문자:

  • std::cin: 기본적으로 std::cin은 선행 공백(공백, 탭 등)을 건너뛰고 처음 발견되는 공백 문자에서 읽기를 중지합니다. .
  • std::cin.getline(): 대조적으로, std::cin.getline()은 개행 문자(n)가 나타날 때까지 모든 문자를 읽고 포함합니다. 이는 공백 문자를 포함한 텍스트의 전체 줄을 효과적으로 읽는다는 것을 의미합니다.

사용 예

문자열과 입력 작업을 수행할 때 이러한 차이점을 이해하는 것이 중요합니다. 공백이나 줄바꿈을 포함하세요. 예를 들면 다음과 같습니다.

string name;
int age;

// Read a single word from std::cin
std::cin >> name; // Suppose John

// Read the next line of input
std::string line;
std::getline(std::cin, line); // Suppose "is 25 years old"

// Extract the age from the line
age = std::stoi(line.substr(line.find("is") + 3, line.find("years") - 5)); // Extract "25"

이 예에서는 std::cin을 사용하여 단일 단어(이름)를 읽은 다음 std::cin.getline()을 사용하여 다음 줄 전체를 읽습니다. 나이가 포함된 줄을 읽기 위해 std::cin을 사용했다면 주변 텍스트 없이 "25"만 추출했을 것입니다.

결론

공백이나 줄바꿈이 포함된 입력을 처리할 때는 std::cin.getline()과 std::cin의 차이점을 파악하는 것이 필수적입니다. 개발자는 고유한 동작을 이해함으로써 입력의 특정 부분을 효과적으로 검색하고 데이터 처리 시 잠재적인 모호성을 피할 수 있습니다.

위 내용은 C에서 `std::cin`과 `std::cin.getline()`의 주요 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.