> 백엔드 개발 > C++ > 본문

Turbo C의 \'cin\'은 왜 첫 번째 단어만 읽나요?

Barbara Streisand
풀어 주다: 2024-10-28 18:07:29
원래의
502명이 탐색했습니다.

Why Does Turbo C  's

Turbo C의 "cin" 제한: 첫 번째 단어만 읽기

Turbo C에서 "cin" 입력 연산자에는 문자 배열을 다룰 때의 제한 사항. 특히 공백 문자(예: 공백 또는 줄 바꿈)를 만날 때까지만 읽습니다. 이로 인해 다중 단어 입력을 읽으려고 할 때 예기치 않은 동작이 발생할 수 있습니다.

다음 Turbo C 코드를 고려하세요.

<code class="c++">#include <iostream.h>

class String {
  char str[100];

public:
  void input() {
    cout << "Enter string: ";
    cin >> str;
  }
  void display() {
    cout << str;
  }
};

int main() {
  String s;
  s.input();
  s.display();
}</code>
로그인 후 복사

이 코드를 실행하고 "Steve Hawking, " 출력에 전체 문자열이 표시될 것으로 예상할 수 있습니다. 하지만 "cin" 제한으로 인해 "cin"이 첫 번째 공백 문자(공백)에서 읽기를 중지하므로 "Steve"만 표시됩니다.

제한 극복

이 제한 사항을 해결하기 위해 Turbo C에서 문자 배열을 읽는 다른 방법을 사용할 수 있습니다.

  1. cin.getline(str, sizeof str);
    이것은 메소드는 공백 문자를 포함한 전체 입력 행을 지정된 문자 배열로 읽어옵니다.
  2. std::getline(cin, str);
    표준에 액세스할 수 있는 경우 라이브러리를 사용하면 이 방법을 사용하여 전체 줄을 문자열 객체로 읽어 더 많은 유연성을 제공할 수 있습니다.
  3. 자신만의 문자열 클래스 구현:
    자신만의 문자열 클래스를 정의할 수 있습니다. 입력과 출력을 보다 효율적으로 처리하는 것입니다.

권장

요즘 권장되는 접근 방식은 최신 C 컴파일러와 표준 라이브러리를 사용하는 것입니다. 이는 전체 입력 줄을 읽는 기능을 포함하여 보다 안정적이고 효율적인 입력 처리를 제공합니다.

위 내용은 Turbo C의 \'cin\'은 왜 첫 번째 단어만 읽나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!