티스토리 뷰

언어/C++

18.1 istream으로 입력 받기

js0331 2020. 5. 25. 21:32

stream은 버퍼에서 임시적으로 저장된 것을 꺼내오는 방식

 

#include<iostream>
#include <iomanip>
#include<string>

using namespace std;

int main()
{
	char buf[10];
	
	// 최대 n글자만 받도록 방지해줌. 하지만 그 이후 남아있는 버퍼들을 비워주지는 않는다.
	cin >> setw(5) >> buf;
	
	cout << buf;
	
	return 0;
}
abcdefg
abcd

 

 

cin은 빈칸이나 띄어쓰기를 기준으로 받아들인다.

 

하지만 만일 빈칸까지 input으로 받아들이고 싶다면, cin.get(input, 받아들이고 싶은 길이)을 이용하자.

int main()
{
	char ch;
	
	while(cin.get(ch))
		cout << ch;
	
	return 0;
}
cin.get(buf, 5)

//Hello, World!
//Hell

 

cin.getline(input, length) 는 줄바꿈 기호까지 읽어들인다.

 

getline(cin, input) 버퍼 사이즈를 전혀 고민하고 사용할 수 있다는 장점이 있다.

 

그러나 cin.getline으로 호출한게 아니라서 cin.gcount()를 사용할 시 0이 return 된다.

 

 

cin.igonre(length); 는 안에 들어간 길이 만큼 버퍼에 있는 것들을 무시한다.

char buf[1024];

cin.igonre(2);

cin >> buf;
cout << buf << endl;

return 0;

//Hello
//llo

 

 

cin.putback('A'); 버퍼에 원하는 것을 넣는 메서드?

'언어 > C++' 카테고리의 다른 글

18.3 문자열 스트림  (0) 2020.05.26
18.2 ostream으로 출력하기  (0) 2020.05.25
17.1 std::string과 std::wstring  (0) 2020.05.25
16.1 / 16.2 표준 템플릿 라이브러리, 컨테이너, 반복자 소개  (0) 2020.05.23
15.5 / 15.6 / 15.7  (0) 2020.05.23
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함