IT 프로그래밍/백준
[C++] 백준 11718번 그대로 출력하기
기술1
2024. 3. 25. 16:50
https://www.acmicpc.net/problem/11718
11718번: 그대로 출력하기
입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시
www.acmicpc.net
풀이
-geline을 통해 적용하는 것까진 쉽게 되었습니다.
-어디까지 해야하는지 정해져 있지 않았기 때문에 while문을 사용했습니다.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string b;
while (true)
{
getline(cin, b);
cout << b << endl;
if (b == "")
break;
}
return 0;
}
위와 같은 방식대로 getline(cin, b)를 하면 하나의 문장이 끝날 떄까지의 공백또한 같이 출력이 됩니다. 입력받은 그대로 한줄씩 출력하고 싶으면 getline 함수를 쓰면 됩니다.
if문을 써주지 않는다면 무한반복되기 때문에 입력값이 "" 일때는 break를 해주도록 끝내주었습니다.
다른 풀이
#include <iostream>
#include <string>
using namespace std;
int main()
{
string b;
while (getline(cin, b))
{
cout << b << endl;
}
return 0;
}
다른 식으로 할 수도 있습니다. while문 괄호 안에 getline함수를 넣어서 조건식으로 입력을 넣어 false가 반환되면 while 루프를 끝내주도록 할 수 있습니다.
저같은 경우는 마지막에 어떻게 끝내줘야 하는지에 대해서 의문이 들었습니다.
EOF까지 도착하였을 때 입력을 안 받으면 끝나도록 저런식으로 써주었습니다.