본문 바로가기

프로그램/C언어

【C언어】 txt 파일을 읽고 버블정렬하여 출력하는 소스코드

반응형
C언어.

이미 만들어져있고 데이터가 있는 txt 파일을 읽어들여 버블정렬하여 다른 txt파일로 출력하는 소스 코드입니다.

주석으로 간단하게 설명을 붙여두었습니다.

제일 아래에 파일을 첨부해뒀습니다.



#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void printArray(int* ,int );  // 함수 선언
void swap(int* , int*);
void main() {
        int i, k;
        int data[5];
        int maxindex;
        FILE *fp = NULL;
        fp = fopen("qwer.txt", "r");  // 파일 열기, 이때 qwer.txt 라는 파일이 소스폴더 내에 있어야 함.
        if (fp == NULL) {      // 파일을 열기를 성공/실패 했을 경우
               printf("파일 열기 실패\n");
               exit(1);       // 강제 종료
        }
        else
               printf("파일 열기 성공\n");
        k = 0;
        while (fscanf(fp, "%d", &i) != EOF) { // 파일 내 데이터를 읽어들임
               data[k] = i;
               k++;
        }
        fclose(fp);            // qwer.txt 파일을 닫음.
        printArray(data, 5);
        printf("\n");
        for (k = 0 ; k < 5 ; k++) {           // 버블 정렬 소스 시작
               for (i = 0 ; i< 4 - k ; i++) {
                       if ( data[i] > data[i+1] ) {
                              swap(&data[i+1], &data[i]);
                       }
               }
        }       // 버블 정렬 소스 끝
        printArray(data, 5);
        fp = fopen("output.txt", "w");               // 소스가 있는 폴더 내에 output.txt라는 파일이 생성됨.
        for (k = 0; k<5; k++) {
               fprintf(fp, "%d ", data[k]);
        }
        fclose(fp);            // output.txt 파일을 닫음.
}
void printArray(int array[], int size) {     // 배열을 출력해주는 함수
        int i;
        for (i = 0; i<size; i++) {
               printf("%d ", array[i]);
        }
        printf("\n");
}
void swap(int *num1, int *num2) {     // 위치 바꾸는 함수
        int temp;
        temp = *num2;
        *num2 = *num1;
        *num1 = temp;
}



반응형
LIST