반응형

아주 간단한 이야기고 시시할 수 있지만 fopen으로 인해 시간 단축을 해보는 과정을 알아보려한다.


원래는 예제 입력을 ctrl + c - ctrl + v를 통해 콘솔에 입력해서 출력을 얻을 수 있는 방법도 있지만


최근 어느 시험을 치룬 결과 그 방법이 안되는 경우도 있었다.


물론 내가 어떻게 조작해야하는지 모르는 상황도 있지만 시험을 치러가면 당황하게 되기 마련이기에


가장 정석적인 방법으로 input을 어떻게 받아볼지 고민해보는 것도 좋아보인다.


코드는 매우 간단하다.


이제 다양한 input에 대해 어떻게 대비할지만 생각하면 되는 부분이므로 아주 간단한 코드로 진행해보자




위와 같이 input.txt 파일을 만든다.


(이름을 input으로 하고 텍스트 파일을 만들어야지 input.txt로 이름을 정하면 실제 이름이 input.txt.txt가 됨을 유의하자.)





이제 위와같이 예제 입력을 받아낼 텍스트를 작성한다. (문제의 예제 입력을 복사 붙여넣기 하자.)



이제 아래와 같이 코딩을 하자.


FILE *fp = fopen("input.txt", "r"); 이 과정이 input.txt를 읽기전용으로 연다는 과정이고


scanf대신 fscanf를 이용하여 파일을 읽어들이자.











1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <cstdio>
 
using namespace std;
 
int main()
{
    int tc;
    int a, b;
 
    FILE *fp = fopen("input.txt""r");
 
    fscanf(fp, "%d"&tc);
 
    for(int t = 1; t <= tc; t++)
    {
        fscanf(fp, "%d %d"&a, &b);
 
        printf("Test Case :: %d // ans :: %d\n", t, a + b);
    }
 
    fclose(fp);
    return 0;
}
 
//                                                       This source code Copyright belongs to Crocus
//                                                        If you want to see more? click here >>
Crocus





이제 실행을 하면 최종적으로 결과를 얻을 수 있다.


매우 쉬운 방법이나 한번쯤은 다시 생각해보기 좋아보이고, 시험을 치러 가거나 다양한 문제를 풀 때 유용하게 쓸 수 있다고 생각한다.



반응형