백준 단계별로 풀어보기(C++)/5)문자열

백준 11718) 그대로 출력하기 (C++)

코테 2023. 3. 25. 21:41

전체 코드

#include <iostream>

int main()
{
	char S[101];
	int idx = 0, sec = 0;
	
	while (true)
	{
		std::cin.getline(S, 101);
		if (std::cin.eof() == true)
			break;
		std::cout << S << std::endl;
	}
}

풀이

  • char 배열 선언, 100글자를 넘지 않고, '\0'이 글자끝에 항상 들어가는것을 고려해서 다음과 같이 선언
char S[101];
  • 무한반복문
  • std::cin.getline : 띄어쓰기와 그이후의 글자들을 그대로 입력받게 해줌(원래는 띄어쓰기 있으면 그 이후 글자는 입력 안됨), 인자로 배열과 배열크기 넣기
  • 만약 std::cin.eof가 true이면(파일의 끝을 의미함) 무한반복문 멈춤(없으면 무한반복됨), 만약 이렇게 종료 조건이 없다면 eof를 이용하면 됨
  • 입력받은 1줄과 줄바꿈 출력을 같이 출력해서 다음줄로 넘김
while (true)
{
	std::cin.getline(S, 101);
	if (std::cin.eof() == true)
		break;
	std::cout << S << std::endl;
}