티스토리 뷰
안녕하세요, IT디자이너입니다.
이번에는 파일과 스트림(Stream)에 관련된 표준 입출력 함수를 이용하는 방법에 대해서 포스팅하도록 하겠습니다.
우리는 C언어를 통해서 특정 외부장치에서 문자열을 입력하거나 출력하는 방법을
"C언어의 문자 & 문자열 함수!! (표준 입출력 함수-1)"
첫 번째로 소개해드릴 함수는 fopen(); 함수입니다. 이 함수는 "표준 입출력 함수"로서 두 번재 매개변수의 값에 따라서 파일의 출력 또는 입력의 방식으로 사용할 수 있습니다.
1) 예제 코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
FILE* fp = fopen("data1.txt", "wt");
if (fp == NULL) {
puts("파일오픈 실패!!");
}
fputs("안녕하세요", fp);
fclose(fp);
}
위으 소스코드를 실행 시 "data1.txt"라는 파일이 생성되며 "안녕하세요" 라는 텍스트가 저장되어 있을 겁니다.
바로 두 번째 매개변수 "wt"가 출력하다 라는 의미입니다. 즉, 콘솔의 기준으로 콘솔에 입력된 값을 파일에 출력한다는 의미입니다.
그리고 마지막 코드인 fclose() 함수는 한번 오픈한 스트림은 자원을 반환하고 버퍼링 되어있던 데이터의 출력을 위해 fclose() 함수로 닫는 것을 운영체제에 요청해야 합니다.
추가적으로 개발자 입장에서는 fopen() 함수를 사용하여 파일을 오픈이 아니라 "개방" 한다는 말을 조금 더 많이 사용합니다.!
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <Windows.h>
int main()
{
FILE* fp = fopen("data1.txt", "wt");
FILE* fpR = fopen("data1.txt", "rt");
if (fp == NULL) {
puts("파일오픈 실패!!");
}
fputs("확인해볼게요!", fp);
fflush(fp); // 출력버퍼를 비움으로써 fclose 이번에 텍스트파일에 저장할 수 있다.
puts("잠시만요!");
Sleep(3000);
char str[20];
fgets(str, sizeof(str),fpR);
printf_s("%s", str);
fclose(fp);
fclose(fpR);
}
파일의 개방모드는 위 표에서 참고하여 사용이 가능하며, 꼭 읽기만이 아닌 읽기 또는 쓰기 또는 붙여쓰기 모드로 생성이 가능합니다. !!!!
하지만!!!! 읽기+쓰기 모드로 생성하더라도 스트림은 1개이기 때문에 하나의 작업을 수행 후 다른 작업을 수행하려면 버퍼가 비워져있는 상태여야 합니다.
그렇기 때문에 한 가지 기능만 있는 모드로 파일을 개방하는 것을 추천드립니다.
이렇게 간단하게 텍스트 파일을 이용한 스트림 생성 또한 알아보았습니다.!!
감사합니다. IT디자이너였습니다.
- Total
- Today
- Yesterday
- C언어 #C++ #IT디자이너 #함수 #재귀 함수 #스택 #자료구조 #페인팅
- C언어 #C++ #구조체 정렬 #pragma #IT디자이너
- IT디자이너 #C언어 #C++ #속성지정자 #기억클래스 #IT #const #static #register #volatile #extern #auto #s
- C언어 #C++ #switch #if #어셈블리어 #switch문 사용 이유 #IT디자이너
- C언어 #C++ #IT디자이너 #C++ 함수
- IT디자이너 #C언어 #C++ #IT디자이너 #코딩테스트
- C언어 #C++ #어셈블리어 #구조체 #구조체 특징 #IT디자이너
- C언어 #스트림 #버퍼링 #표준 입출력 함수 #C++언어 #IT디자이너
- C언어 #C++ #어셈블리어 #IT디자이너 #비트연산자 #연산자 #C언어의 비트 연산자
- C언어 #C++ #어셈블리어 #함수 호출 규약 #IT디자이너 #비쥬얼 스튜디오 #IT
- C언어 #C++ #파일 입출력 #텍스트파일 #IT디자이너
- C언어 #C++ #자료구조 #알고리즘 #IT디자이너 #버블 정렬 #BubbleSort
- C언어 #포인터 #배열 포인터 #포인터 배열 #함수
- 스택 #자료구조 #Stack #IT디자이너 #알고리즘 #C언어 #스택 과제 #C++
- Debug #C언어 #C++ #비쥬얼스튜디오 #Release #IT
- C언어 #C++ #삼각함수 #IT디자이너 #문제풀이 #2진수 #16진수 #비트 #bit #비트연산자
- C언어 #C++ #IT디자이너
- IT디자이너 #QuickSort #퀵정렬 #C언어 #C++ #자료구조 #알고리즘
- C언어 #IT디자이너 #C++언어
- C언어 #C++ #캐시hit #캐시라인 #캐시무효화
- C언어 #자료구조 #C++ #연결리스트 #리스트 #알고리즘 #IT디자이너
- 어셈블리어 #IT디자이너 #C언어 #C++언어 #어셈블리 #어셈블러
- C언어 #C++ #어셈블리어 #재귀함수 #IT디자이너
- C언어 #IT디자이너 #포인터 #배열 #포인터와 배열
- 디버그 #Debug #Release #디버그와 릴리즈 차이 #C언어 #C++언어 #어셈블리어
- QUEUE #큐 #자료구조 #원형 큐 #Circle Queue #IT디자이너 #큐 과제 #C언어 #C++언어
- C언어 #C++ #시간 함수 #타이밍 맞추기 #timer interrupt #IT디자이너
- C언어 #C++ #어셈블리어 #열거형 데이터타입 #IT디자이너
- C언어 #포인터 #IT디자이너
- C언어 #IT디자이너
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |