본문 바로가기
알고리즘 문제풀이

[알고리즘] 파일 입출력

by 마스터누누 2017. 4. 18.
728x90
반응형

파일 입출력


알고리즘을 하는데 있어서 가장 기본이 되는 요소는 파일 입출력이다. 

이는, 주어진 문제의 테스트케이스를 받고 결과를 출력하기 위해서는 당연하게 사용되는 기능이라고 할수 있다. 

가장 기본이 되는 파일 입출력을 살펴보도록 하자


(기준은 C++로 설명)



1. 기본


1
2
3
4
5
6
7
8
9
10
#include<iostream>
using namespace std;                                               
 
int main() {
    char str;
 
    cin >> str;
    cout << str << endl;
 
}
cs

 

가장 기본이 되는 코드이다. 

std:: cin 을 이용해 변수에 사용자가 입력한 값을 넣고, std::cout을 통해 출력을 한다.

여기서 endl은 개행을 나타낸다.





2. 테스트 케이스 형식으로 주어질 


1
2
3
4
5
6
7
8
9
10
11
12
13
#include<iostream>
using namespace std;
 
int main() {
    int T;
 
    cin >> T;
 
    while(T--){
        //    알고리즘을 넣는다                                                                            
    }
 
}
cs


테스트 케이스형식으로 숫자가 주어지고, 

이에 맞춰 계산을 반복 수행 하라는 문제가 있다.

이때는 테스트 케이스 T에 숫자를 받고, 감소 연산자를 이용하여 

while 내부에서 알고리즘을 수행하면 된다.





3. 입력이 주어지지 않은 경우


1
2
3
4
5
6
7
8
9
10
11
12
13
#include<iostream>
using namespace std;
 
int main() {
    int num;
 
    while(cin >> num){
        // 입력 도중 수행해야할                                                                          
        // 알고리즘이 있다면 
        // 여기 작성
    }
 
}
cs


입력이 주어지지 않은경우는 EOF(End Of File)까지 입력을 받으면 된다.

말그대로 파일의 끝까지 입력을 받으면 되는 것인데, 

이는 입력 함수의 반환값을 통해 알수 있다.

위의 코드와 마찬가지로 조건문이나 반복문을 이용하여 입력 받는다.





4. 한줄 씩 입력 받기


1
2
3
4
5
6
7
8
9
10
11
#include<iostream>
#include<string>
using namespace std;
 
int main() {
    string str;
    char buffer[100];
 
    getline(cin, str);
    fgets(buffer, 100, stdin);                                                                              
}
cs


경우에 따라 한 줄씩 입력 받아야 할 때가 있다.

그럴때는 fgets나 getline함수를 사용한다.

다만, fgets는 줄바꿈(개행)까지 입력 받기때문에 주의한다.

반응형

댓글