728x90
728x90
파일 처리의 흐름

파일 포인터를 준비, 파일을 열기, 읽고 쓰기, 파일을 닫기

 

C 파일포인터

파일 스트림을 가리키는 포인터. 파일스트림.

파일포인터 : 하드디스크에서 메모리로 읽어들일 화일의 `위치 주소` 및 `버퍼링`에 대한 추상화정보를 가지고 있는 포인터

 

파일열기 : fopen()

파일을 못열면 NULL 반환

 

파일닫기 : fclose()
FILE* fp;
fp = fopen("abc.txt", "w"); // w / r / a : 쓰기 읽기 추가로 쓰기
if (fp == NULL) return;
fclose(fp);

 

파일쓰기 : fprintf()
fprintf(fp, "%s", a);
// 포인터명, 서식, 문자열배열명

 

파일 읽기 : fgets()

파일에서 문자열을 한 줄씩 읽어들임

fgets(s, 29, fp);
// 읽어온값을 저장할 문자열배열명, 읽어들일 최대 문자수, 파일포인터명

 

파일의 끝 : feof()
#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <string.h>

main()
{
    FILE* fp;
    char s[256];
    int i = 1;

    fp = fopen("abc.txt", "r");
    if (fp == NULL) {
        return;
    }

    while (feof(fp) == 0) {
        fgets(s, 255, fp);
        printf("%04d: %s", i, s);
        i++;
    }
    fclose(fp);
}

 

 

 

예시

#define _CRT_SECURE_NO_WARNINGS  // fopen 보안 경고로 인한 컴파일 에러 방지
// include 위에 넣어야 한다.

#include <stdio.h>

main()
{

    FILE* fp;
    char a[] = "Cats and dogs.", s[30];    
    
    // 파일 쓰기 프로그램
    fp = fopen("abc.txt", "w"); // write   
	if (fp == NULL) return;    
    fprintf(fp, "%s", a);
    fclose(fp);

	// 파일 읽기 프로그램
    fp = fopen("abc.txt", "r"); // read    
    if (fp == NULL) return;
    fgets(s, 29, fp);
    printf("%s\n", s);
    fclose(fp);

}

 

 

반응형

 

 

int main 이랑 void main이랑 main이랑..차이점

https://coding-restaurant.tistory.com/432

 

C언어 출력타입 %d, %f, %e, %o, %x, %u, %g ......
  • %d: 10진수(정수형)
  • %f: 실수형
  • %e: 지수형
  • %o: 8진수
  • %x: 16진수
  • %u: 부호없는 10진수
  • %g: 실수형 자동출력
  • %p: 포인터의 주소
  • %c: 하나의 문자로 출력
  • %s: 문자열


출처: https://byunggni.tistory.com/48 [띵돌이의 블로그]

728x90
728x90

'C, C++' 카테고리의 다른 글

메인 함수(엔트리포인트)  (0) 2021.09.08
strcmp, strncmp - 두 문자열 일치 비교, 길이 특정  (0) 2021.09.08
[C] strcpy, strncpy  (0) 2021.08.27
c++ define 함수  (0) 2021.05.26
[공유] C++  (0) 2021.05.12
블로그 이미지

coding-restaurant

코딩 맛집에 방문해주셔서 감사합니다.

,

v