C언어/C언어 예제

[C언어 소스] fputc 함수 사용 예제

언제나휴일 2016. 4. 30. 01:53
반응형

fputc 함수 사용 예제

//C언어 표준 라이브러리 함수 사용법 가이드

//int fputc(int ch,FILE *fp); 파일 스트림에 하나의 문자를 출력하는 함수

//파일을 복사하고 파일에 문자 종류별로 개수 파악

 

#include <locale.h>

#include <stdlib.h>

#include <ctype.h>

#include <stdio.h>

 

void main(int argc, char **argv)

{

    FILE * sfp, *dfp;

    int line_no = 1,nc=0,lc=0,uc=0, ec=0;

    char ch;

   

    setlocale(LC_ALL, "");

    if (argc != 3)//command line에서 인자를 잘못 사용

    {

        printf("사용법: %s [출력 파일명] [원본 파일명]", argv[0]);

        return;

    }

 

    //원본 파일 읽기 모드로 열기

    fopen_s(&sfp, argv[2], "r");

    if (sfp == NULL)//열기 실패일 때

    {

        perror("fopen 실패");//에러 메시지 출력

        return;

    }

 

    //출력 파일 쓰기 모드로 열기

    fopen_s(&dfp, argv[1], "w");

 

    while (!feof(sfp)) //원본 파일 스트림이 EOF를 만나지 않았다면 반복

    {       

        ch = fgetc(sfp);//원본 파일에서 하나의 문자 읽기

        if (ch == EOF)

        {

            break;

        }

        fputc(ch, dfp);//출력 파일에 하나의 문자 쓰기

        if (isdigit(ch)){    nc++;    }//숫자 문자일 때

        else if (islower(ch)){    lc++;    }//소문자일 때

        else if (isupper(ch)){    uc++;    }//대문자일 때

        else{    ec++;    }//그 외의 문자일 때

        if (ch == '\n')

        {            

            line_no++; //라인번호 1 증가

        }

    }

 

    //파일 스트림 닫기

    fclose(sfp);

    fclose(dfp);

    printf("라인: %d 소문자:%d 대문자:%d 숫자문자:%d 기타문자:%d\n", line_no, lc, uc, nc, ec);

 

    {//확인을 위하여 출력 파일 내용을 콘솔 화면에 출력

        char cmd[256];

        sprintf_s(cmd, sizeof(cmd), "type %s", argv[1]);

        system(cmd);

    }

    printf("\n");

}

 

명령줄

> ex_fputc output.txt input.txt

 

input.txt 내용

//1. "Hello World"를 표준 출력 스트림(콘솔 화면)에 출력

#include <stdio.h> //2. 표준 입출력 헤더 포함문

 

void main(void)//3. 프로그램 진입점

{

    printf("Hello World\n");//4. 표준 출력 스트림에 문자열 출력

}

출력

라인: 7 소문자:48 대문자:4 숫자문자:4 기타문자:152

//1. "Hello World"를 표준 출력 스트림(콘솔 화면)에 출력

#include <stdio.h> //2. 표준 입출력 헤더 포함문

 

void main(void)//3. 프로그램 진입점

{

    printf("Hello World\n");//4. 표준 출력 스트림에 문자열 출력

}

새로 만들어진 output.txt 내용

//1. "Hello World"를 표준 출력 스트림(콘솔 화면)에 출력

#include <stdio.h> //2. 표준 입출력 헤더 포함문

 

void main(void)//3. 프로그램 진입점

{

    printf("Hello World\n");//4. 표준 출력 스트림에 문자열 출력

}


언제나 휴일에서는 출간하는 서적의 내용을 온라인에 배포하고 있으며 무료 동영상 강의를 제작 배포하고 있습니다.

언제나 휴일 티스토리 바로가기

언제나 휴일 유튜브 채널 바로가기

반응형