C++의 몇 가지 키보드 입력 방식 에 대해 간단히 말 하 다

2212 단어 C++건반입력
C++는 키보드 에서 입력 을 읽 을 수 있 고 입력 을 읽 는 방식 도 여러 가지 가 있다 는 것 을 잘 알 고 있 습 니 다.다음은 흔히 볼 수 있 는 몇 가지 방식 을 소개 하 겠 습 니 다.
그들 과 다른 점
1、cin
cin 입력 을 사용 할 때 프로그램 은 입력 을 일련의 바이트 로 간주 합 니 다.모든 바이트 가 문자 인 코딩 으로 해석 된다.데이터 형식 이 무엇이든 입력 은 처음에는 문자 데이터 이 고 cin 대상 은 데 이 터 를 다른 형식 으로 변환 하 는 것 을 책임 집 니 다.
예컨대

string name;
std::cin>>name;
std::cout<<name;
마 이 클 잭 슨 을 입력 하면 프로그램 을 실행 하면 name 에 마 이 클 만 저장 되 어 있 는 것 을 발견 할 수 있 습 니 다.왜 일 까요?
원래 cin 은 공백(빈 칸,탭 문자,줄 바 꿈 문자)을 사용 하여 문자열 의 끝 위 치 를 확인 합 니 다.
문자 배열 을 읽 을 때 cin 은 첫 번 째 단어 만 읽 습 니 다.cin 은 이 문자열 을 배열 에 넣 고 빈 문 자 를 자동 으로 추가 합 니 다.
Michael Jackon 사이 의 빈 칸 은 끝 문자 로 되 어 있 으 며,Jackon 은 다음 입력 을 읽 을 때 까지 입력 대기 열 에 계속 남아 있 습 니 다.
어떻게 이런 문 제 를 해결 할 것 인가,계속 내 려 다 보 세 요.
2、getline()
getline()함 수 는 전체 줄 을 읽 는 데 사용 되 며,Enter 키 를 통 해 입력 의 끝 을 확인 합 니 다.
그래도 MIchael Jackon 을 읽 으 려 면

String name;
getline(cin,name);
std::cout<<name:
아니면 char 로 배열 할 수 있어 요.

char name[50];
std::cin.getline(name,50);
std::cout<<name;
이것 은 네가 읽 은 것 이 마 이 클 잭 슨 이라는 것 을 알 게 될 것 이다.
getline 은 줄 바 꿈 자 를 읽 어서 끝 을 읽 지만 줄 바 꿈 자 를 저장 하지 않 습 니 다.문자열 을 저장 하 는 것 은 줄 바 꿈 자 를 빈 문자 로 대체 합 니 다.
getline 에서 한 줄 을 읽 었 을 때 다음 줄 부터 읽 습 니 다.즉,우 리 는 한 줄 을 뛰 어 넘 을 수 있 습 니 다.
만약 우리 가 텍스트 파일 을 읽 을 때,한 줄 을 읽 지 않 는 다 면,우 리 는 이렇게 할 수 있다

string str;
getline(cin,str);
이렇게 해서 이 줄 을 뛰 어 넘 었 습 니 다.
3、get()
Istream 에는 get()이라는 변형 이 있 는데 그의 작업 방식 은 getline()과 유사 하 다.그들 은 매개 변 수 를 똑 같이 받 아들 이 고 매개 변 수 를 해석 하 는 방식 도 같 으 며 줄 끝까지 읽 었 다.줄 끝 에 읽 을 때 줄 바 꿈 자 를 버 리 지 않 고 입력 대기 열 에 남 겨 두 기

cin.get(name,50);
cin.get(dessert,50);
문자열 을 읽 었 다 고 가정 하고 읽 었 을 때 줄 바 꿈 자 를 읽 었 습 니 다.get()은 줄 끝 에 도 착 했 고 읽 지 않 았 다 고 생각 합 니 다.
어떻게 해결 하지?
우 리 는 두 번 의 읽 기 사이 에 cin.get()을 추가 할 수 있 습 니 다.줄 바 꿈 문자 라 도 다음 문 자 를 읽 는 데 사용 합 니 다.

cin.get(name,50);
cin.get();
cin.get(dessert,50)
이상 의 이 간단 한 이야기 C++의 몇 가지 키보드 입력 방식 은 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 께 참고 가 되 고 여러분 들 이 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기