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에서 문자 배열을 읽는 다른 방법을 사용할 수 있습니다.
- cin.getline(str, sizeof str);
이것은 메소드는 공백 문자를 포함한 전체 입력 행을 지정된 문자 배열로 읽어옵니다. - std::getline(cin, str);
표준에 액세스할 수 있는 경우 라이브러리를 사용하면 이 방법을 사용하여 전체 줄을 문자열 객체로 읽을 수 있으며 이는 더 많은 유연성을 제공합니다. - 자신만의 문자열 클래스 구현:
자신만의 문자열 클래스를 정의할 수 있습니다. 입력과 출력을 보다 효율적으로 처리합니다.
권장 사항
요즘 권장되는 접근 방식은 최신 C 컴파일러와 표준 라이브러리를 사용하는 것입니다. 이는 전체 입력 줄을 읽는 기능을 포함하여 보다 안정적이고 효율적인 입력 처리를 제공합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3