C "cin"은 첫 번째 단어만 읽습니다
C에서 입력 스트림 연산자 >> 일반적으로 키보드와 같은 입력 소스에서 단일 단어를 읽습니다. 첫 번째 단어만 캡처되므로 공백이 포함된 문자열을 읽으려고 할 때 문제가 될 수 있습니다. 이 문제는 문자 배열 작업 중에 발생할 수 있습니다.
다음 코드를 고려하십시오.
<code class="c++">#include <iostream.h> #include <conio.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(); return 0; }
Turbo C 4.5에서 이 코드를 실행하면 문자열의 첫 번째 단어만 표시됩니다. 그 이유는 cin>> str은 str 문자 배열에서 한 단어만 읽습니다. 공백을 포함하여 전체 입력 줄을 읽으려면 대체 접근 방식이 필요합니다.
한 가지 옵션은 getline() 함수를 사용하는 것입니다.
<code class="c++">#include <iostream> #include <string> using namespace std; int main() { string s; cout << "Enter string :"; getline(cin, s); cout << s; return 0; }</code>
이 코드는 전체 줄을 읽습니다. 공백을 포함한 입력을 s 문자열에 입력합니다. getline()을 사용하여 문자 배열을 읽을 수도 있습니다.
<code class="c++">#include <iostream.h> #include <conio.h> int main() { char str[100]; cout << "Enter string :"; cin.getline(str, sizeof str); cout << str; return 0; }
또는 >> 연산자를 사용하면 다음과 같이 코드를 수정할 수 있습니다.
<code class="c++">#include <iostream.h> #include <conio.h> class String { char str[100]; public: void input() { cout << "Enter string :"; cin.getline(str, sizeof str); } void display() { cout << str; } }; int main() { String s; s.input(); s.display(); return 0; }</code>
이러한 수정을 통해 코드는 전체 입력 문자열을 올바르게 읽고 표시합니다.
위 내용은 C \의 `cin`을 사용하여 공백을 포함한 전체 입력 줄을 읽는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!