본문 바로가기
C언어

[C언어] 학생의 이름과 점수를 입력받아 파일에 저장하는 프로그램을 작성하시오

by 이얏호이야호 2022. 12. 1.

학생은 구조체로 생성하고, 학생의 이름과 점수를 입력받아 쓰기모드로 파일에 저장하는 프로그램을 작성하시오

물론 단번에 코드를 본다면 좋기야 하겠지만 장기적으로 봤을때

혼자풀어보기 -> 힌트 -> 코드보기 순으로 공부하시는게 실력 향상에 큰 도움이 됩니다!

힌트를 보고 천천히 생각을 거쳐서 문제를 풀어보시고

답안을 확인해보세요

 

더보기
먼저 student 구조체를 생성하여

이름과 성적을 얻을 구조체를 생성합니다.

 

if 문을 활용하여 파일을 쓰기모드("w")로 생성하고 오류가 생긴다면 닫는 작업을 진행합니다.

if((fp = fopen(filename,"w"))==NULL) 

구조체에 이름과, 성적을 입력받고 

파일을 쓰는 작업인 fprintf(파일, 기록할내용, 기록할 내용의 변수) 순으로작업을 진행하면됩니다.

기본틀입니다.

#include <stdio.h>
#include <stdlib.h>
#define filename "get_grade.txt"
struct student		//이름과 성적을 얻을 구조체
{


};
int main(void)
{
 struct student stdnt;
 int i;
 FILE *fp;
 if (			)		//파일을 쓰기모드로 생성
 {
 printf("File open에 오류 발생");		//오류가 생긴다면 꺼짐
 exit(1);
 }
 printf("이름과 점수를 입력하고 Enter\n");	//이름과 점수를 입력
 for(i=0;i<=2;i++)
 {
 scanf("%s %d", stdnt.names, &stdnt.score);	//이름, 점수를 입력받고
 fprintf(			);	//파일fp에 이름, 점수 순으로 기록
 fflush(stdin);
 }
 fclose(fp);
 return 0;
}

 

 

 

 

 

 

 

 

 

더보기
#include <stdio.h>
#include <stdlib.h>
#define filename "get_grade.txt"
struct student		//이름과 성적을 얻을 구조체
{
 char names[20];
 int score;
};
int main(void)
{
 struct student stdnt;
 int i;
 FILE *fp;
 if ((fp=fopen(filename, "w"))==NULL)		//파일을 쓰기모드로 생성
 {
 printf("File open에 오류 발생");		//오류가 생긴다면 꺼짐
 exit(1);
 }
 printf("이름과 점수를 입력하고 Enter\n");	//이름과 점수를 입력
 for(i=0;i<=2;i++)
 {
 scanf("%s %d", stdnt.names, &stdnt.score);	//이름, 점수를 입력받고
 fprintf(fp, "%s %d\n", stdnt.names, stdnt.score);	//파일에 이름, 점수 순으로 기록
 fflush(stdin);
 }
 fclose(fp);
 return 0;
}

 

 

 

 

 

 

 

더 많은 C언어 글이 궁금하다면?

https://chuinggun.tistory.com/category/C%EC%96%B8%EC%96%B4

 

댓글