<get> : get()은 문자만 입력받을 수 있다.
- 이 함수는 개행문자를 입력 큐에 그대로 남겨둔다.
#include <iostream.h> void main() { char a, b, c; a = cin.get(); //cin.get(a) 가능 b = cin.get(); c = cin.get(); //1 cout<<a<<" "<<b<<" "<< c<<endl; //2 } |
x입력후 엔터, y입력후 엔터
[2번 출력 결과]
x
y
-즉 엔터도 입력받을 문자로 간주한것으로 볼 수 있습니다.(공백또한 문자로 간주)
x + Enter(개행) + y
cf)cin은 엔터가 나오면 입력 종료로 간주.
cf)getline와 get함수가 다른 점은 get함수는 개행문자를 읽어서 버리지 않고 입력큐에 그대로 남겨둔다는 점이다.
즉, cin.get(str1, hi);
cin.get(str2, hello);
라는 두 문장이 있다면 입력큐에 개행문자가 그대로 있어서 두번째 호출은 개행문자를 첫 문자로 만나게 된다.
굳이 get()을 써야 한다면,
cin.get(str1, hi);
cin.get();
cin.get(str2, hello);
이렇게 두 문장사이에 get()을 하나 더 삽입하면 된다.
파일에서 읽어들여 올때.. 간단한 사용법
read ( ifstream *input_file ) { char c; while (1) { input_file->get(c); if ( input_file->eof() ) break; else cout<<c; } } |
//or read ( ifstream *input_file ) { char c; input_file->get(c); |
//or ... 이게 제일 편한 방법인듯. read ( ifstream *input_file ) { char c; while ( input_file->get(c) ) |
<getline> : getline()은 문자열만 입력 받는다.
getline(변수의 주소, 최대입력가능 문자수, 종결문자);
-getline()gkatnsms Enter키가 전달하는 개행문자를 입력의 끝으로 인식하여 한줄 전체를 읽는다.
-종결문자 생략시 엔터로 간주된다. 그리고 종결문자를 NULL문자로 바꾼다. 따라서 종결문자전까지 출력하게 된다.
최대입력가능 문자수보다 많은 문자를 입력한 경우 n-1개만큼만 받아들이고 n번째 문자는 null문자로 취급한다.
-cin.getline(a,20); //이때 입력한 문자의 개수는 19개이하이여야 한다.(마지막 1문자는 null문자 삽입)
#include<iostream> void main() { char a[10]; cin.getline(a,10); //1 cout<<a<<endl; //2 cin.getline(a, 10, 'u'); //3 } |
2번 결과 => so cute!
cf)cin의 경우 공백이 나오면 입력이 끝났다고 간주, but getline은 공백(ascii 32)도 문자로 받아들임
3번에서 so cute! 입력후 엔터
4번 결과 => so c
퍼온사이트 : http://simplesolace.tistory.com/entry/input-cin-get-getline-%ED%95%A8%EC%88%98-%EC%B0%A8%EC%9D%B4
'MFC' 카테고리의 다른 글
[MFC] token 분리함수 ( AfxExtractSubString ) (0) | 2014.02.26 |
---|---|
[MFC] MFC에서 Excel 사용(Automation Class 와 ExcelFormat Library ) (9) | 2014.02.26 |
[MFC] 셋업파일 출력하기 (0) | 2014.02.21 |
[MFC] List Control Editing ( 클릭시 수정 / 에디트박스로 출력 ) (2) | 2014.02.21 |
[MFC] List Control 에 List 더블클릭시 해당 칼럼 가져오기 (0) | 2014.02.13 |