C 언어에서 fget() 을 활용하여 간단하게 입력을 받는 방법을 기록하려 한다.

 

fget() 은 스트림에서 문자열을 읽어 들이는 함수인데~ sscanf() 와 함께 아래 코드와 같이 사용 할 수 있다.

 

아래 코드는 숫자 두 개를 받아서 간단하게 라인 수를 넣고 그 합을 출력해 주는 코드이다.

 

#include <stdio.h>

 

#define    TEXTLENGTH    2048

 

int    main()

{

char    text[TEXTLENGTH] ;

double    xi, yi ;

int        n=1;

 

while (fgets (text, TEXTLENGTH, stdin) != NULL )

{

if (sscanf (text, "%lf %lf", &xi, &yi ) == 2 )

{

    printf("%d, %lf+%lf=%lf\n",n, xi, yi, xi+yi);

    ++n ;

}

else

{

    fprintf( stderr, "Data Number Error : %s", text ) ;

}

}

return 0 ;

}

 

일단 현재 내 컴퓨터 환경은 윈도우 7, 64 비트이고 mingw 가 설치되어 있다.

 

위 코드의 파일 명은 standardIO.c 인데~ 다음과 같이 CMD 창에서 컴파일 한다.

 

gcc standardIO.c -o standardIO

 

다음으로 입력을 위한 test.txt 파일을 다음과 같이 만들었다. 단순히 탭으로 구분된 숫자 두 개씩 저장한 것이다.

 

아래 명령어로 test.txt 파일의 내용을 standardIO.exe 에 넣어주면~

 

standardIO.exe < test.txt

 

아래와 같은 결과가 나온다.

 

아래와 같이 명령하면~

standardIO.exe < test.txt > result.txt

 

result.txt 파일이 다음과 같이 만들어 지기도 한다.

 

아래 그림과 같이 standardIO.exe 를 실행하고~ cmd 창에 숫자를 넣어서 계산 할 수도 있다. 종료는 Ctrl + C 를 누르면 된다.


+ Recent posts