Chapter 6. 분기 구문과 논리 연산자 - 프로그래밍 연습_9

SeungHee Yun·2022년 7월 24일
0

C++ 기초 플러스

목록 보기
63/115

문제 :

파일로부터 정보를 얻는 프로그램을 만들어라.

파일에 들어 있는 첫 항목은 기부자 수가 되어야 한다.

파일의 나머지는 두 행씩 짝을 이루어, 순서대로 이름, 기부액을 출력해야한다.

파일의 예시는 다음과 같다.

2
Sam
2000
Tom
1000

해답 :

#include<fstream>
#include<cstdlib>

const int SIZE = 20;

struct donation_info 
{
    char name[20];
    double donation;
};

char filename[SIZE];

ifstream inFile;
cout << "읽을 파일명 입력 : ";
cin.getline(filename, SIZE);

inFile.open(filename);

if (!inFile.is_open())
{
    cout << "파일 열기 실패" << endl;
    exit(EXIT_FAILURE);
}

int n {};

(inFile >> n).get();

donation_info* SPRI = new donation_info[n];

for (int i = 0; i < n; i++)
{
    inFile.getline((SPRI + i)->name, SIZE);
    (inFile >> (SPRI + i)->donation).get();
}


for (int i = 0; i < n; i++)
{
    if ((SPRI + i)->donation >= 10000)
    {
        cout << (SPRI + i)->name << "	$" << (SPRI + i)->donation << endl;
    }
}

for (int i = 0; i < n; i++)
{
    if ((SPRI + i)->donation < 10000)
    {
        cout << (SPRI + i)->name << "	$" << (SPRI + i)->donation << endl;
    }
}

inFile.close();

출처 : C++ 기초 플러스 6판 / 성안당


profile
Enthusiastic Game Developer

0개의 댓글