#include <iostream>
#include <string>
using namespace std;
int main() {
freopen("input.txt", "rt", stdin);
string ex1, ex2;
cin >> ex1;
cout << ex1 << "\n";
cout << "---------------------------------------------\n";
freopen("input.txt", "rt", stdin);
getline(cin, ex2, '\n');
cout << ex2;
return 0;
}
ex)
"input.txt"가 hello my name is kimjuwon.일때
따라서 cin 과 getline을 이어서 써야 하고, 이 이음새에 '\n'이 존재한다면, getline으로 입력을 받기전에 cin.ignore();를 사용하여 제일 앞의 버퍼 1의 크기만큼을 삭제해해야한다.
이러한 과정은 다음을 통해 확인할 수 있다.
#include <iostream>
#include <string>
using namespace std;
int main() {
freopen("input.txt", "rt", stdin);
string ex1, ex2, ex3;
cin >> ex1;
getline(cin, ex2);
getline(cin, ex3);
cout << ex1 << '\n';
cout << ex2 << '\n';
cout << ex3 << '\n';
cout << "-------------------------------------\n";
freopen("input.txt", "rt", stdin);
cin >> ex1;
cin.ignore();
getline(cin, ex2);
getline(cin, ex3);
cout << ex1 << '\n';
cout << ex2 << '\n';
cout << ex3 << '\n';
return 0;
}
ex)
"input.txt"가
apple
banana
peach
일때,