코락 CoRock
코딩하는 락스타
코락 CoRock
  • 분류 전체보기 (393)
    • frameworks (19)
      • spring (19)
      • spring-boot (0)
      • testing (0)
    • languages (94)
      • java (39)
      • kotlin (0)
      • python (42)
      • r (13)
    • libraries (0)
    • programming (239)
      • android (13)
      • c (17)
      • cpp (22)
      • database (18)
      • design-pattern (4)
      • data-structures (11)
      • git (8)
      • hadoop (6)
      • html-css (7)
      • issue (4)
      • javascript (26)
      • jsp (34)
      • os (29)
      • php (6)
      • preferences (19)
      • etc (15)
    • discography (37)
      • k-pop (18)
      • pop (19)
    • blog (3)

블로그 메뉴

  • Programming
  • Java
  • JavaScript
  • Discography
  • K-Pop Songs
  • Pop Songs
  • Blog
  • Guestbook

공지사항

인기 글

태그

  • Spring
  • linux
  • oracle
  • python
  • 자바스크립트
  • jsp
  • CentOS
  • r
  • Java
  • Android
  • javascript
  • 파이썬

최근 댓글

최근 글

티스토리

반응형
hELLO · Designed By 정상우.
코락 CoRock

코딩하는 락스타

[DAY 10] FILE I/O
programming/c

[DAY 10] FILE I/O

2018. 1. 22. 18:09
반응형

FILE I/O

c 언어에서는 하드웨어도 파일로 인식한다.


ex. fflush : buffer clear function

stdin : file pointer


file을 가리키기 위해서 file pointer를 쓴다. 포인터는 주소만 알면 마음대로 할 수 있기 때문에!


(공책 참고)\


텍스트 모드, 바이너리 모드

텍스트 모드는 파일에 1번 써 2번 써 3번 써 이렇게 한다.

바이너리 모드는 1번부터 6번 사이즈만큼 써


읽어올 때는 텍스트 모드는 1번째꺼 읽어와 2번째꺼 읽어와 이런 식으로(쓴 순서대로)

*/



ㆍ 파일 포인터의 모형


FILE *fp;


ㅁㄴㅇㅁㄴㅇ





ㆍ "w" mode


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
 
void main()
{
    FILE *fp = NULL;
 
    char name[20] = "captain america";
    int age = 100;
 
    if ((fp = fopen("a.txt", "w")) == NULL) {
        puts("failed to open file!");
        exit(-1);    // dirty shutdown
    }
 
    // printf("%s\t%d \n", name, age);
    fprintf(fp, "%s\t%d \n", name, age);
    // ㄴ data entered on file
 
    fclose(fp);
}
Colored by Color Scripter
cs


FILE *fp = NULL; // 현재 파일포인터가 아무데도 가르키고 있지 않다


// 파일 포인터가 메모리를 잡았으면 그 주소값이 올거고

        // 파일 오픈하는데 실패하면 NULL을 return한다.

        if ((fp = fopen("a.txt", "w")) == NULL) { // 파일열었다

                 puts("파일 열기 실패");

                 exit(-1);                // 비정상적 종료

        }       // "w" 모드는 파일을 무조건 새로 만드는구나

 

        // printf("%s\t%d\n", name, age);

        fprintf(fp, "%s\t%d\n", name, age);


ㅁㄴㅇㅁㄴㅇ


ㆍ "a" mode


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/*
    appendix mode
*/
 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
 
void main()
{
    FILE *fp = NULL;
 
    char name[10] = "pororo";
    int age = 20;
 
    if ((fp = fopen("a.txt", "a")) == NULL) {
        puts("failed to open file!");
        exit(-1);
    }
 
    fprintf(fp, "%s\t%d \n", name, age);
 
    fclose(fp);
}
Colored by Color Scripter
cs





ㅁㄴㅇㅁ


ㆍ 확장


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#pragma warning(disable:4996)
#include <stdio.h>
#include <stdlib.h>
 
typedef struct _student {
    char name[10];
    int kor, eng, math;
    int total;
    float avg;
} STUDENT;
 
void main()
{
    FILE *fp;
    STUDENT stu = { "superman", 20, 30, 40, 90, 30 };
    
    // 예외처리를 해야 맞지만 편의상 생략하였다.
    fp = fopen("b.txt", "w");
 
    // 일일이 기록할 데이터들을 다 써야 한다.
    fprintf(fp, "%s %d %d %d %d %f \n",
            stu.name, stu.kor, stu.eng, stu.math, stu.total, stu.avg);
 
    fclose(fp);
}
Colored by Color Scripter
cs




ㄴㅇㅁㅇ

asdasdad





반응형
저작자표시 비영리 변경금지 (새창열림)
    'programming/c' 카테고리의 다른 글
    • [IDE] 코드 블럭스(CodeBlocks)에서 다크 테마로 변경하기
    • 배열과 포인터
    • [Android] WebView | Thread
    • [DAY 07] Stack and Queue (Version 1.1)
    코락 CoRock
    코락 CoRock
    A COder dreaming of being a ROCKstar

    티스토리툴바