티스토리 뷰
출처 : https://desire-with-passion.tistory.com/169
(출처로 들어가면 더 자세한 설명을 볼 수 있습니다)
(아래 글은 출처의 내용을 정리한 것입니다)
이번 학기 수업 중 하나가 C로 진행된다.
C 파일 입출력 역시.. 잘 몰라서 위 출처의 내용을 정리했다.
FILE *file_pointer // 파일스트림
// 1. stream을 통해 파일을 여는 법
fopen("파일경로", "열기방식")
fclose(stream 이름)
File *file_pointer;
file_pointer = fopen("a.txt", "w"); // 경로에 적히는 '\'는 개행문자라 두번 적어줘야함
fclose(file_pointer);
// 2. 파일을 여는 방식
fopen("파일경로", "열기방식")
모드 || 기능 || 파일없음 || 파일있음 || 기존 파일 보호(파일로출력시)
r || 읽기(=입력) || 에러 || 기존파일이용 || 에러
r+ || 읽기/쓰기(=출력) || 에러 || 기존파일이용 || 겹쳐써짐
w || 쓰기 || 새로생성 || 새로생성 || 지워짐(새로생성)
w+ || 쓰기/읽기 || 새로생성 || 새로생성 || 지워짐(새로생성)
a || 쓰기(덧붙이기) || 새로생성 || 기존파일이용 || 뒤쪽에 써짐
a+ || 쓰기, 읽기 || 새로생성 || 기존파일이용 || 뒤쪽에 써짐
단, 여기서 입력과 출력이 동시에 가능한 모드에서 입력과 출력을 번갈아
수행하기 위해서는, 위치 지정자를 새로 정해줘야한다.
(아마 보니깐, 내용을 덮어씌우려면 w+를, 뒤쪽에 추가하려면 a+ 정도를 쓰면 될 듯)
// 3. 파일에서 읽어오기
fscanf(읽어올 stream name, "읽어올자료유형", 읽어들일위치)
fgets(읽어들일위치, 읽어올문자열크기, stream name)
char from_a_txt[30];
char from_a_txt2[30];
File *file_pointer = fopen("a.txt", "r");
fscanf(file_pointer, "%s", from_a_txt);
fgets(from_a_txt2, 30, file_pointer);
printf("읽어온부분 : %s \n", from_a_txt);
fclose(file_pointer);
// 4. 파일로 출력하기
fputs("쓸내용", 쓸stream이름)
fprintf(쓸위치, "쓸내용", 서식문자)
char to_a_txt[30] = "Good bye, World!";
FILE *file_point;
file_pointer = fopen("a.txt", "w");
fputs("Hello, World!", file_pointer);
fprintf(file_pointer, "Another? %s", to_a_txt);
fclose(file_pointer);
결과
Hello, World! Another? Good bye, World!
// 5. 위치지정자
fseek(stream_name, offset, 기준점)
-> offset은 거리를 나타내는 정수
-> 파일의 시작 : SEEK_SET
-> 지금 가리키고 있는 위치 : SEEK_CUR
-> 파일의 끝 : SEEK_END
char from_a_txt[30];
char from_a_txt2[30];
FILE *file_pointer;
file_pointer = fopen("a.txt", "r");
fscanf(file_pointer, "%s", from_a_txt);
printf("읽어온 부분 : %s \n", from_a_txt);
fseek(file_pointer, 0, SEEK_SET);
fgets(from_a_txt2, 30, file_pointer);
printf("읽어온 부분 : %s \n", from_a_txt2);
fclose();
여기서 만약 offset을 1 로 바꾼다면 fgets 은 아래의 내용을 출력하게 될 것이다.
ello, World!
(출처로 들어가면 더 자세한 설명을 볼 수 있습니다)
(아래 글은 출처의 내용을 정리한 것입니다)
이번 학기 수업 중 하나가 C로 진행된다.
C 파일 입출력 역시.. 잘 몰라서 위 출처의 내용을 정리했다.
FILE *file_pointer // 파일스트림
// 1. stream을 통해 파일을 여는 법
fopen("파일경로", "열기방식")
fclose(stream 이름)
File *file_pointer;
file_pointer = fopen("a.txt", "w"); // 경로에 적히는 '\'는 개행문자라 두번 적어줘야함
fclose(file_pointer);
// 2. 파일을 여는 방식
fopen("파일경로", "열기방식")
모드 || 기능 || 파일없음 || 파일있음 || 기존 파일 보호(파일로출력시)
r || 읽기(=입력) || 에러 || 기존파일이용 || 에러
r+ || 읽기/쓰기(=출력) || 에러 || 기존파일이용 || 겹쳐써짐
w || 쓰기 || 새로생성 || 새로생성 || 지워짐(새로생성)
w+ || 쓰기/읽기 || 새로생성 || 새로생성 || 지워짐(새로생성)
a || 쓰기(덧붙이기) || 새로생성 || 기존파일이용 || 뒤쪽에 써짐
a+ || 쓰기, 읽기 || 새로생성 || 기존파일이용 || 뒤쪽에 써짐
단, 여기서 입력과 출력이 동시에 가능한 모드에서 입력과 출력을 번갈아
수행하기 위해서는, 위치 지정자를 새로 정해줘야한다.
(아마 보니깐, 내용을 덮어씌우려면 w+를, 뒤쪽에 추가하려면 a+ 정도를 쓰면 될 듯)
// 3. 파일에서 읽어오기
fscanf(읽어올 stream name, "읽어올자료유형", 읽어들일위치)
fgets(읽어들일위치, 읽어올문자열크기, stream name)
char from_a_txt[30];
char from_a_txt2[30];
File *file_pointer = fopen("a.txt", "r");
fscanf(file_pointer, "%s", from_a_txt);
fgets(from_a_txt2, 30, file_pointer);
printf("읽어온부분 : %s \n", from_a_txt);
fclose(file_pointer);
// 4. 파일로 출력하기
fputs("쓸내용", 쓸stream이름)
fprintf(쓸위치, "쓸내용", 서식문자)
char to_a_txt[30] = "Good bye, World!";
FILE *file_point;
file_pointer = fopen("a.txt", "w");
fputs("Hello, World!", file_pointer);
fprintf(file_pointer, "Another? %s", to_a_txt);
fclose(file_pointer);
결과
Hello, World! Another? Good bye, World!
// 5. 위치지정자
fseek(stream_name, offset, 기준점)
-> offset은 거리를 나타내는 정수
-> 파일의 시작 : SEEK_SET
-> 지금 가리키고 있는 위치 : SEEK_CUR
-> 파일의 끝 : SEEK_END
char from_a_txt[30];
char from_a_txt2[30];
FILE *file_pointer;
file_pointer = fopen("a.txt", "r");
fscanf(file_pointer, "%s", from_a_txt);
printf("읽어온 부분 : %s \n", from_a_txt);
fseek(file_pointer, 0, SEEK_SET);
fgets(from_a_txt2, 30, file_pointer);
printf("읽어온 부분 : %s \n", from_a_txt2);
fclose();
여기서 만약 offset을 1 로 바꾼다면 fgets 은 아래의 내용을 출력하게 될 것이다.
ello, World!
'C, C++' 카테고리의 다른 글
C++ fstream 간단한 사용법(파일입출력) (0) | 2020.06.27 |
---|
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- docker-compose
- 도커
- 게이밍모니터
- 암기빵
- React Native
- ios
- 소프트웨어마에스트로11기
- iOS #코코아터치
- docker image
- 출석하냥
- QHD모니터
- 평면모니터
- 코코아터치
- 데일리
- Swift
- 한성모니터
- 간단정리
- docker
- docker tag
- dockerfile
- 사이드 프로젝트
- 제발태그그만
- 144hz모니터
- 도커 이미지
- 앱출시
- 개인정보처리방침
- tensorflow
- ES6
- 왕국타이머
- 카카오인턴십
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 26 |
27 | 28 | 29 | 30 |
글 보관함