송시혁 2013. 5. 6. 16:00

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <process.h>
int main()
{
  FILE *fp;
  char name[20];
  int english;
  int math;
  float average;
  
  if((fp= fopen("d11-5.txt""w")) == NULL)
  {
    printf("Can not open file \"score.txt\"\n");
    exit(-1);
  }
  printf("Enter <q> at the new line, if you want to finish.\n");
  printf("enter Name, english, score, math score: ");
  scanf("%s %d %d", name, &english, &math);
  
//본격적으로 파일에 write 하는 부분
  while(1)
  {
    average = ((float) english + math)/2;
    fprintf(fp, "%s %d %d %f", name, english, math, average);
    printf("Enter <q> at the new line, if you want to finish.\n");  
    printf("Enter Name, english scorem, math score: ");
    scanf("%s", name);
    if(strcmp (name, "q"== 0)
    {
      break;
    }
    scanf("%d %d"&english, &math);
  }
  fclose(fp);
  
// 화면에 출력을 하는 부분
  if((fp=fopen("d11-5.txt""r")) == NULL)
  {
    printf("Can not open file\"score.txt\"\n");
    exit(-1);
  }
  printf("Name\tenglish maty\t average\n");

  while((fscanf(fp, "%s %d %d %f", name, &english, &math, &average))!=EOF)
  {

    printf("%s \t%d\t %d\t %3.1f\n", name, english, math, average);
  }
  fclose(fp);
  

  




  return 0;
}

1.fp를 기록한다.
2. 반복문으로 값을 입력하고 fprintf로 파일에 있는
값을 모니터에 출력한다.
3.strcmp(name,"q") 함수로 q와 scanf()로 입력받은 문자열이
 q와 같을때 반복문을 탈출하게 한다.
4. 파일에 기록한 파일을 읽어서 모니터에 다시 출력한다.
유의 사항은
1.fclose(fp);를 반드시 한다.
2. 파일을 다시 읽을때는 fscanf로 다시 읽어들여서 
   출력을 해야한다.