짤은 시스터 ver. madness2008
1. 다음 기능을 수행하는 프로그램을 완성하시오.
학사 DB의 학생테이블의 행의 구조는 ID, Name, Address, Major의 필드들로 구성된다. 이들데이터를 C의 파일 IO 기능을 통해 파일로 저장하고 읽어오려고한다. 다음에 정의된 구조체 정의를 사용해서 학생정보를 나타내는데(1) 키보드로 입력되는 학생의 각각의 필드 정보들을 배열(최대 10명의 학생 정보 저장)에 저장했다가 (2) 이를 파일로 출력시킨 후 파일을 닫는다. 그리고 (3) 다시 그 파일을 열어서 한 행의 데이터씩 읽어서 그 결과를 화면에 출력시킨다.
// 생략 …
struct studenttype { int ID, char name[10],char address[30], char major[10] } ;
int main(void) {
struct studenttype students[10];
….. //구현 필요
}
2. 위의 프로그램으로 생성된 파일의 내용이 텍스트 편집기를 통해읽을 수 있는지 확인하시오. d만일 다른 사용자가 이 파일을 읽기 위해 프로그램을 작성하려고 한다. 이때 파일을 읽기 위해 필요한 최소 정보, 즉 꼭 필요한 정보가무엇인지 쓰시오.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
제 코드입니다
#include <stdio.h>
#include <string.h>
struct PROFILE
{
int ID;
char name[10];
char address[50];
char major[10];
};
int main(void)
{
struct PROFILE students1[10];
struct PROFILE students2[10];
memset(students1, 0x00, sizeof(students1));
memset(students2, 0x00, sizeof(students2));
int n;
int i;
char c;
FILE *fp;
printf("학생 수를 입력하시오: ");
scanf("%d", &n);
printf("n");
for(i = 0; i < n ; i++)
{
printf("ID : ");
scanf("%d",&students1[i].ID);
printf("NAME : ");
scanf("%s",&students1[i].name);
printf("ADDRESS : ");
scanf("%s",&students1[i].address);
printf("MAJOR : ", i+1);
scanf("%s",&students1[i].major);
printf("n");
}
fp = fopen("student.txt","wb");
if( fp == NULL )
{
printf("파일 열기 실패n");
return -1;
}
fwrite(&students1,sizeof(PROFILE),n,fp);
fclose(fp);
fp = fopen("student.txt","rb");
if( fp == NULL )
{
printf("파일 열기 실패n");
return -1;
}
fread(&students2,sizeof(PROFILE),n,fp);
fclose(fp);
for(int r=0;r<i;r++)
{
printf("%dt", students2[r].ID);
printf("%st", students2[r].name);
printf("%st", students2[r].address);
printf("%sn", students2[r].major);
}
getchar();
return 0;
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
교수가 작년에 하지않았냐면서 이정도 기초는 당연하다는듯이 과제렁탕을 쳐먹이셨는데 전 파일 입출력 배운 적이 없고여
혀튼 몇 시간동안 이런 저런 정보를 주워담으면서 하긴 했는데
1. 1번 문제에서 파일을 다른 구조체에 입력해서 콘솔에 출력시켰는데 이게 문제가 원하는 답이 맞나여?
2. 그리고 2번 문제에서 텍스트 에디터로 실행시키면 사진처럼 떠버려여 흐규흐규 뭐가 문젠지 모르겠삼 memset 이라는 함수를 써서 쓰레기값을 없애도 저럼
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.