728x90
파일 열기
FILE *fp;
fp = fopen(”파일이름.txt”, “파일모드w”);.
파일모드
- r 읽기모드
- w 쓰기모드
- a 추가모드로 파일 열기
- r+ 읽기모드, 쓰기 전환가능
- w+ 쓰기모드 생성, 읽기 전환 가능
- a+ 추가모드, 읽기 전환 가능
- t 텍스트 파일 모드
- b 이진 파일 모드
파일 만들고 파일에 텍스트 쓰기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
FILE* fp = NULL; //포인터로!!
fp = fopen("sample.txt", "w");
if (fp == NULL)
printf("파일 열기 실패\\n");
else
printf("파일 열기 성공\\n");
fprintf(fp, "Hello file\\n");
fclose(fp); //닫아야 함. 안 닫으면 저장 안 되는 경우도 ㅇ
return 0;
} //프로젝트 폴더에 텍스트 파일 만들어짐
텍스트 파일에서 특정 문자열을 탐색하는 프로그램
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main(void)
{
FILE* fp;
char fname[128];
char buffer[256];
char word[256];
int line_num = 0;
printf("입력 파일 이름을 입력하시오: ");
scanf("%s", fname);
printf("탐색할 단어를 입력하시오: ");
scanf("%s", word);
// 파일을 읽기 모드로 연다.
if ((fp = fopen(fname, "r")) == NULL)
{
fprintf(stderr, "파일 %s을 열 수 없습니다.\\n", fname);
exit(1);
}
while (fgets(buffer, 256, fp)) {
line_num++;
if (strstr(buffer, word)) {
printf("%s: %d 단어 %s이 발견되었습니다.\\n", fname, line_num, word);
}
}
fclose(fp);
return 0;
}
임의 접근 파일
- 순차 접근 : 파일의 처음부터 순차적으로 읽거나 기록
- 임의 접근 : 파일의 어디든 읽기와 쓰기 가능
- 파일 포인터 : 현재 어떤 위치에서 이루어지는지
- 강제적으로 파일 포인터 이동시키면 임의 접근 가능 - fseek()
int fseek(FILE* fp, long offsetm int origin);
SEEK_SET = 0 = 파일의 시작
SEEK_CUR = 1 = 현재 위치
SEEK_END = 2 = 파일의 끝
- ftell() long ftell(FILE* fp);
예제
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
FILE* fp;
char buffer[100];
fp = fopen("sample.txt", "wt");
fputs("ABCDEFGHHIJKLMNOPQRSTUVWXYZ", fp);
fclose(fp);
fp = fpoen("sample.txt", "rt");
fseek(fp, 3, SEEK_SET);
printf("fseek(fp, 3, SEEK_SET) = %c \\n", fgetc(fp));
fseek(fp, -1, SEEK_END);
printf("fseek(fp, -1, SEEK_END) = %c \\n", fgetc(fp));
fclose(fp);
return 0;
}
728x90
'Programming > C' 카테고리의 다른 글
[C언어] 17. 동적메모리와 연결리스트 (0) | 2023.10.19 |
---|---|
16. 전처리 및 다중 소스 파일 (1) | 2023.10.19 |
13. 구조체 (0) | 2023.10.19 |
12. 문자열 (0) | 2023.10.19 |
11. 포인터 (1) | 2023.10.19 |