성엽이
KKIMSSI
성엽이
전체 방문자
오늘
어제
  • 분류 전체보기 (454)
    • :) (2)
    • C프로그래밍이론 (9)
    • C++프로그래밍 (64)
      • STL (1)
    • C# (2)
    • Visual studio 10.0 (9)
    • AT91SAM7S256 (21)
    • 논리회로 (14)
    • AVR2560 (11)
    • TCPIP (16)
    • NetWork (4)
      • Ubuntu Linux (2)
    • Assembly (21)
    • UNIX 프로그래밍 (6)
    • RFID 분석 (1)
    • Win32 API (7)
    • Cortex-M3 (4)
    • Unity (91)
    • Flutter (9)
    • OwnProject (11)
      • It's mine (5)
      • 마인드스톰 실습 (1)
      • 보고서 자료 (2)
      • RPi B+ (2)
    • ETC (25)
      • 상식 (3)
    • MFC (40)
    • PostgeSQL (18)
    • 영상제어 (6)
      • VFW_영상처리 (1)
    • Python (0)
    • Java (30)
      • SpringBoot (2)
      • Javascript (1)
      • JSP (13)
      • Spring (8)
    • Oracle (4)
      • SQL (3)
    • HTML (6)
      • Thymeleaf (1)
      • CSS (1)
      • Bootstrap (3)
    • IDE (1)
      • VS Code (1)
    • Android (2)
    • Privacy Policy (0)
    • MYSQL (2)
      • MariaDB (2)
    • AWS (5)
    • 개인공부 (0)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록
  • 관리자
  • 글쓰기

공지사항

인기 글

태그

  • ARM Reverse Engineering
  • 문자열 나누기
  • MFC
  • WINAPI
  • Boot Code 분석

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
성엽이

KKIMSSI

MFC

[MFC] 2014.02.26 _ get(), getline() 함수 비교

2014. 2. 26. 12:05

<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
}

1번까지
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);
 while (!input_file->eof())
 {
  cout<<c;
  input_file->get(c);
 }
}

 //or ... 이게 제일 편한 방법인듯.
read ( ifstream *input_file )
{
 char c;

 while ( input_file->get(c) )
  cout<<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
 cout<<a<<endl;  //4

}

1번에서 so cute! 입력후 엔터
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
    'MFC' 카테고리의 다른 글
    • [MFC] token 분리함수 ( AfxExtractSubString )
    • [MFC] MFC에서 Excel 사용(Automation Class 와 ExcelFormat Library )
    • [MFC] 셋업파일 출력하기
    • [MFC] List Control Editing ( 클릭시 수정 / 에디트박스로 출력 )
    성엽이
    성엽이

    티스토리툴바