게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
파일 입출력 질문입니다.
게시물ID : programmer_17273짧은주소 복사하기
작성자 : 자르반고등어
추천 : 0
조회수 : 431회
댓글수 : 28개
등록시간 : 2016/05/18 21:26:15
옵션
  • 본인삭제금지
#include<stdio.h>
#pragma warning(disable:4996)

struct information
{
char name[100];
char writer[50];
char no[5];
}info[100];

void information();
void enrollment();
void delete();
void search();
int a;

int main()
{
int b;
printf("무슨 작업을 하시겠습니까?\n 1.자료현황\n 2.자료등록\n 3.자료삭제\n 4.자료검색\n ->");
scanf("%d", &b);
switch (b)
{
case 1:
information();
break;
case 2:
enrollment();
break;
case 3:
delete();
break;
case 4:
search();
break;
}

return 0;
}

void information()
{
int input=0;
FILE* stream1;
if (stream1 = NULL)
{
printf("파일열기 에러");
main();
}
stream1 = fopen("information.txt", "r");
printf("책 제목 저자 일련번호");
for (a = 0;a<2; a++)
{
fprintf(stdout, "%s %s %s \n", info[a].name, info[a].writer, info[a].no);
}
fclose(stream1);
main();
}

void enrollment()
{
a = 0;
FILE* stream2;
    stream2 = fopen("information.txt", "w");
while ((int)info[a].name != EOF)
{
printf("책의 제목:");
scanf("%s", info[a].name);
printf("책의 저자:");
scanf("%s", info[a].writer);
printf("일련 번호:");
scanf("%s", info[a].no);
fprintf(stdin, "%s %s %s", info[a].name, info[a].writer, info[a].no);
   fprintf(stream2, "%s %s %s", info[a].name, info[a].writer, info[a].no);
fclose(stream2);
}
    
    

main();
}

void delete()
{

}

void search()
{

}

저번에도 질문을 드렸었는데 답변 주신 분들의 말씀을 전부 이해하기가 힘들어서 다시금 조언을 구하려고 글을 올립니다.

일단 메모장에다가 파일을 받아서 출력 하는걸 하고 싶은데 파일 출력을 시도하면 아무것도 안뜨더라구요 

fgetc와 fputc를 이용해서 EOF까지 파일내용을 받아 들여서 출력하는 것은 가능한데 그렇게 하면 

파일이 순서가 거꾸로 되어서 나오더라구요 그걸 어떻게 순서를 원하는 방향으로 하고 싶었는데 

함수 특성인지 아니면 제가 못찾아서 그런지 잘 안되더라구요 

이렇게 하다가 느낀게 fscanf 함수를 통해서 자료를 받아들이는건 그 자체가 구조체 형태는 아닌거 같더라구요 그냥 소스코드 상에서 보기 편하게 구조체로 나눈거지 이게 실재로 메모장에 써지게 되면 이건 구조채로써가 아니라 메모장에 적힌 그냥 데이터 같더라구요

되도록 fprintf 함수를 쓰고 싶은데 뭐가 문제인지 잘 모르겠습니다. 

어떻게 수정을 해야 할까요?
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호