안녕하세요.. 엉뚱질문드립니다. 구조체 안에 파일 포인터 넣기..
양자리
안녕하세요.. 엉뚱질문드립니다. 구조체안에 파일 포인터 넣은 뒤에 fprintf()이용하여 쓰기를 하려고 합니다.질문 내용 : 아래소스처럼 구조체 안에 파일 포인터를 넣어 세개의 구조체를 선언하여 각각의 파일이름 name1.txt, name2.txt,
name3.txt로 만들어서 저장을 하려고 합니다.
그런데 문제가 발생하였습니다. 첫번째 입력 - 이름 : mj 국어점수 : 99 수학점수 : 88 영어점수 77 입력하고 새로운 구조체로 넘어갈대에 세그멘테이션오류가 납니다.... 메모리 참조가 잘못 되었을 까요???? 1 #include stdio.h
2 #include string.h
3 #include stdlib.h
4
5 struct minjong
6 {
7 char name[20];
8 int kor;
9 int eng;
10 int mat;
11 file *fp;
12 };
13
14 int main()
15 {
16 struct minjong mj[3];
17
18 int i;
19
20 for(i=0;i3;i++)
21 {
22
23
24 printf(이름 : );
25 scanf(%s, mj[i].name);
26
27 printf(국어점수 : );
28 scanf(%d, &mj[i].kor);
29
30 printf(영어점수 : );
31 scanf(%d, &mj[i].eng);
32
33 printf(수학점수 : );
34 scanf(%d, &mj[i].mat);
35
36 mj-fp=fopen(name.txt, r);
37
38 fprintf(mj[i].fp, name[%d].txt, i);
39
40
41 }
42
43
44 fclose(mj-fp);
45
46 return 0;
47 }
-
맞손질
감사합니다. ^^
어째 자꾸 에러가 생기더라니 ..... 그렇다면 파일 포인터를 여러개 쓰려면 어떻게 해야 할까요? -
바나나
mj-fp 라고 쓸 수는 없죠... 위 소스대로라면 파일 포인터도 구조체마다 하나씩 생겨서 총 세 개가 되는데 mj-fp는 말이 안되는군요. mj는 구조체의 포인터가 아니라 배열이니까요. 뭔가 이해를 잘못하신 듯...