본문 바로가기
C

스트림과 파일 입출력 (성적 기록 및 계산기)

by KWONE 2024. 7. 3.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>

int main()
{
	FILE* fp;
	char fname[100];
	int number, count = 0;
	char name[20];
	float score, total = 0.0;

	printf("성적 파일 이름을 입력하시오:  ");
	scanf("%s", fname);

	if ((fp = fopen(fname, "w")) == NULL) {
		fprintf(stderr, "성적파일 %s를 열 수 없습니다.\n", fname);
		exit(1);
	}

	while (1) {
		printf("학번, 이름, 성적을 입력하시오: (음수이면 종료) ");
		scanf("%d", &number);
		if (number < 0) break;
		scanf("%s %f", name, &score);
		fprintf(fp, " %d %s %f", number, name, score);
	}
	fclose(fp);

	if ((fp = fopen(fname, "r")) == NULL) {
		fprintf(stderr, "성적 파일 %s을 열 수 없습니다.\n", fname);
		exit(1);
	}

	while (!feof(fp)) {
		fscanf(fp, "%d %s %f", &number, name, &score);
		total += score;
		count++;
	}

	printf("평균=%.2f\n", total / count);
	fclose(fp);

	return 0;
}

성적파일을 쓰기모드("w")로 열어서 먼저 값을 저장할 파일을 만들고 scanf("%s",fname), fopen()

사용자로부터 학번,이름,성적을 입력받아서 파일에 저장한다. fprintf("%d %s %f",number,name,score)

다시 성적 파일을 읽기모드("r")로  열고, 파일에서 성적을 읽어서 평균을 구한다.fscanf (")

 

입력된 값들이 scores.txt로 저장되어 있는것을 확인 할 수 있다.
score3.exe
0.06MB

'C' 카테고리의 다른 글

임시파일  (0) 2024.07.30
매크로  (0) 2024.07.09
2차원 공간상에서의 평행이동 (typedef 활용)  (0) 2024.06.30
문자열 처리 라이브러리 함수  (0) 2024.06.27
문자열 입출력 라이브러리  (0) 2024.06.25