학생은 구조체로 생성하고, 학생의 이름과 점수를 입력받아 쓰기모드로 파일에 저장하는 프로그램을 작성하시오
물론 단번에 코드를 본다면 좋기야 하겠지만 장기적으로 봤을때
혼자풀어보기 -> 힌트 -> 코드보기 순으로 공부하시는게 실력 향상에 큰 도움이 됩니다!
힌트를 보고 천천히 생각을 거쳐서 문제를 풀어보시고
답안을 확인해보세요
더보기
먼저 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
'C언어' 카테고리의 다른 글
[C언어] 변수 두 개를 곱하고 값을 반환하는 multiply(int a, int b)함수를 작성하시오 (0) | 2022.12.01 |
---|---|
[C언어] 실수를 입력받고 음수인 경우 내림을 실행하고 양수인 경우 올림을 실행하는 함수 round(double a)를 작성하고 테스트하시오 (0) | 2022.12.01 |
[C언어] 숫자를 입력하면 절대값으로 출력하는 프로그램을 출력하시오 (0) | 2022.12.01 |
[C언어] 입력받은 수가 소수 이하인지 정수인지 판단하고 정수라면 홀수인지 짝수인지 판단하는 프로그램을 작성하시오 (0) | 2022.12.01 |
[C언어] 연산자를 입력받고 사칙연산을 수행하는 switch 문을 활용한 프로그램을 작성하시오 (0) | 2022.11.30 |
댓글