어제 주소록 다시 질문입니다;;
콘라드
어제 주소록 다시 질문입니다;;이번에는 case 1이 문제입니다;; 저장을 했는데 만약에 2개 연속 다른내용을 저장하면 처음에 저장한 내용만 2개가 나오네요;;질문 내용 :
아래는 코드고 빨간색이 문제부분입니다...#include stdio.h
struct rock{
char name[10];
char adrs[10];
char phonnum[10];
};//주소록에 들어갈 이름, 주소, 전화번호를 포함하는 구조체 작정
#define output_filename jusorock.txt
#define input_filename input.txt//주소록을 저장할 파일과 읽어들일 주소록 파일을 선언
int count=0;
void main()
{
struct rock std[10];
int innum;
char infile;//구조체와 변수들 선언file *fout;
while(1)//무한반복을 이용하여 메뉴 호출
{
printf(1.저장하기\n);
printf(2.출력하기\n);
printf(3.파일 입력하기\n);
printf(4.종료\n);
printf(번호 입력);
scanf(%d, &innum);
printf(\n);
fout = fopen(output_filename, w);
fprintf(fout, 이름 주소 전화번호\n);
switch(innum)//switch문을 이용해 각 메뉴에 해당하는 기능 작성
{
case 1:
{
printf(이름을 입력하세요.\n);
scanf(%s,&std[count].name);
fprintf(fout, %s , std-name);
printf(주소를 입력하세요.\n);
scanf(%s,&std[count].adrs);
fprintf(fout, %8s , std-adrs);
printf(전화번호를 입력하세요.\n);
scanf(%s,&std[count].phonnum);
fprintf(fout, %15s\n, std-phonnum);
count++;
break;
}//주소록 파일 저장기능, scanf로 구조체상에 입력할 내용을 입력 그다음 fprintf로 파일에도 입력함
case 2:
{
for(innum =0; innumcount; innum++)
{
printf(이름 : %s\n, std-name);
printf(주소 : %s\n, std-adrs);
printf(전화번호 : %s\n, std-phonnum);
}break;
}//주소록 출력기능, 반복문을 통해 입력한 모든 내용 호출(count를 이용하여 반복횟수 지정)
case 3:
{
file *fin;
fin = fopen(input_filename, r);
printf(이름 주소 전화번호\n);
while(fscanf(fin, %c, &infile) != eof){
printf(%c, infile);
}
fclose(fin);
printf(\n);
continue;
}//다른 파일을 입력받아 주소록 프로그램 상에 출력해주는 기능(반복문과 eof를 이용하여 파일 끝까지 출력)
case 4:
{
return 0;
}//종료기능default:
{
printf(error!\n);
continue;
}//메뉴 이외의 숫자를 입력하면 에러메시지가 뜨게 함
}
}
fclose(fout);
}