|
전승호 님이 쓰신 글 :
:
: 문장에서 문장의 마지막에 엔터키의 표시 ('\n')나 나올때까지
: 문장을 받아들여 엔터키의 표시가 나오면 그중까지의 모
: 든 배열을 출력하는 프로그램을 만들어 보았습니다.
: 그런데 이상하게 자꾸 띄어쓰기가 있는곳에서 자꾸 배열의
: 출력이 끊기더군요.
: 문명 if문에서는 ('\n')까지 조사를 하기로 되어있었는데......
: 정말 궁금해요.
: 꼭좀 가르쳐 주세요.
: #include <iostream.h>
: void main()
: {
: char a[100];
: int i,j;
: cout << "a문장은 = ";
: cin >> a;
: for(i=0; i<=99; ++i)
: {
: if (a[i]=='\n')
: {
: j=i;
: }
: }
: for (i=0; i<=j ; ++i)
: {
: cout << a[i];
: }
: cout << '\n';
: }
:
임펠리테리입니다.
cin 은 공백(스페이스나 탭, 엔터 등)을 구분자로 인식하므로, 입력 중간에 스페이스가 들어가면 한 변수에 대해서 입력이 끝났다고 인식하게 됩니다. 만약 스페이스가 있어도 나누지 않고 엔터키 바로 전까지 모두 입력을 받고 싶다면 cin 대신 C 함수인 gets() 를 쓰든지 혹은 cin.getline()을 써야 합니다.
그럼 이만...
|