다음과 같이 저장되어 있는
파일 a.txt 을 읽어서
1 변재솔 90 90 90
2 이미옥 80 100 90
출력파일 b.txt
----------------------------------
번호| 이름 | 국어 영어 수학 총점 평균
----------------------------------
1 | 변재솔 | 90 | 90 | 90 | 270 |90
2 | 이미옥 | 80 |100 | 90 | 280 |90
이렇게 출력되는 프로그램좀 짜주세요 (주석, 프로그램 동작 설명) 해주세요
내공 겁니다.
답변자님,
정보를 공유해 주세요.
코드 올려 드립니다..
간단하게 구현해 봤습니다..
그럼 실행해 보시기 바랍니다..^^
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX_COUNT 2 // 읽어올 학생 수..
typedef struct _st // 학생 구조체 선언..
{
int stNum;
char name[20];
int kor;
int eng;
int math;
}Stu;
void main(void)
{
FILE *rFp, *wFp;
char buf[256], *p;
int count=0, sum=0;
Stu sts[MAX_COUNT];
rFp = fopen("a.txt", "r"); // 읽을 파일을 연다..
wFp = fopen("b.txt", "w"); // 쓸 파일을 연다..
if(rFp == NULL || wFp == NULL)
{
puts("File open error~!!\n");
return ;
}
printf("-------------------------------------------\n");
printf("번호| 이름 | 국어 영어 수학 총점 평균 \n");
printf("-------------------------------------------\n");
fprintf(wFp, "-------------------------------------------\n");
fprintf(wFp, "번호| 이름 | 국어 영어 수학 총점 평균 \n");
fprintf(wFp, "-------------------------------------------\n");
while(fgets(buf, sizeof(buf), rFp)) // 파일로 부터 1라인 씩 읽어온다..
{
if((p = strtok(buf, " "))) // buf로 부터 띄어쓰기(공백)을 기준으로 한 구역 읽은 후 stNum에 대입
sts[count].stNum = atoi(p);
if((p = strtok(NULL, " "))) // 띄어쓰기(공백)을 기준으로 한 구역 읽은 후 name에 대입
strcpy(sts[count].name, p);
if((p = strtok(NULL, " "))) // 위와 같은 방식으로.. 아래를 모두 대입 시킴..
sts[count].kor = atoi(p);
if((p = strtok(NULL, " ")))
sts[count].eng = atoi(p);
if((p = strtok(NULL, " ")))
sts[count].math = atoi(p);
sum = sts[count].kor + sts[count].eng + sts[count].math; // 점수의 합을 구한다..
printf(" %d |%s| %3d | %3d | %3d | %3d | %2.2f\n", sts[count].stNum, // 화면에 출력..
sts[count].name,
sts[count].kor,
sts[count].eng,
sts[count].math,
sum, (float)sum/3);
fprintf(wFp, " %d |%s| %3d | %3d | %3d | %3d | %2.2f\n", sts[count++].stNum, // b.txt 파일에 출력..
sts[count].name,
sts[count].kor,
sts[count].eng,
sts[count].math,
sum, (float)sum/3);
}
fclose(rFp);
fclose(wFp);
}
2008.11.19.
-
채택
질문자가 채택한 답변입니다.
-
출처
직접서술
UP이 많은 답변일수록 사용자들에게 더 많이 노출됩니다.