KMU/algolab

[KMU - algolab] c++ 프로그래밍 파일 입출력

happykoa 2020. 4. 14. 22:31

별 다른 내용은 아닙니다.

이번 주차에서는, 파일 입출력을 활용하고 있는 문제가 출제되었습니다.

 

(알고랩 서버에서 파일 입출력과, 표준 입출력을 정확하게 구분하고 있는지는 잘 모르겠습니다. 단지, 문제에서 파일 입출력을 했다고 명시해놓았으니.. 파일 입출력이겠죠?)

 

막 파일이 어떻고, stream이 어떻고 하는 말은 안하겠습니다.

(저도 C++로 파일 입출력은 잘 안해봐서, 문자열만 입력이 되나 싶었는데, 아니더라구요.. 자세한 건 저도 그렇게 잘 몰라여 헤헤)

 

바로 코드 ㄱㄱ

 

+) 추가

 

ggj06281 형님의 조언을 받아

freopen을 사용한 코드입니다.

freopen을 사용할 경우에는 그냥 freopen 관련 한 줄만 추가하고 평소처럼 코드를 짜면 됩니다.

#include <iostream>

using namespace std;

int n;

int main() {
	freopen("input.txt", "r", stdin);
	cin >> n;
	/* code */
}

 

아래가 원래 제가 쓴 방법입니다.

(속닥속닥 위에거 더 간단한 것 같네여 :) )

 

#include <fstream>
#include <iostream>

using namespace std;

int n;

int main() {
	ifstream in("input.txt");

	if (in.is_open()) {
		in >> n;
		/* code */
	}    
}

파일 입출력을 하면서, 입력으로 두고 싶은 파일의 이름(혹은 디렉토리 위치 포함)을  "input.txt"에 넣어두고, cin 대신에 코드 상에서 선언한 in 을 활용하시면 될 것 같습니다.

 

ifstream `in` 요기에서 in으로 선언했기 때문에 in인 겁니다. 이름에는 별다른 이유가 없습니다.

 

 

 

이제, 열심히 3문제 중 파일 입출력을 활용해야 하는 2문제 풀어보시길 바랍니다. :)

Rmx