"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Turbo C++의 \"cin\"은 왜 첫 번째 단어만 읽나요?

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

2024-11-05에 게시됨
검색:499

Why Does Turbo C  \'s \

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

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

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

#include 

class String {
  char str[100];

public:
  void input() {
    cout > str;
  }
  void display() {
    cout 

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

제한 극복

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

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

권장 사항

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

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3