Nagie's DevStory
[C] 46. 파일 입출력 ( 3 ) 본문
728x90
앞서 파일 형식과는 무관하게 사용되는 함수들을 알아봤다.
이번엔 텍스트 파일 전용 함수들에 대해 알아볼 차례이며 텍스트 파일 전용 함수들은 아래와 같다.
//텍스트 파일 전용함수
int fgetc(FILE* stream);
int fputc(int c, FILE* stream);
char* fgets(char* string, int n, FILE* stream);
int fputs(const char* string,FILE* stream);
1. fgetc
fgetc는 파일에서 한 문자씩 읽어올 때 사용하는 함수다.
이 함수는 파일 포인터를 인자로 받아 해당 파일에서 한 문자씩 읽어온다.
다음은 fgetc의 사용 예시이다.
우선 sample.txt 파일에 다음과 같은 내용이 있다고 가정을 한다.
Hello, World!
#include <stdio.h>
int main() {
FILE *filePointer;
filePointer = fopen("sample.txt", "r");
if (filePointer == NULL) {
printf_s("파일 열기에 실패했습니다.");
return 1;
}
int character;
// 파일에서 문자 읽기
while ((character = fgetc(filePointer)) != EOF) {
putchar(character); // 문자를 화면에 출력
}
// 파일 닫기
fclose(filePointer);
}
위 예시의 결과는 Hello, World!가 출력된다.
2. fputc
fputc는 파일에 한 문자씩 저장하는데 사용된다.
이 함수는 파일 포인터를 받아 해당 파일에 문자를 저장하며 사용예시는 다음과 같다.
#include <stdio.h>
int main() {
FILE *filePointer;
filePointer = fopen("output.txt", "w");
if (filePointer == NULL) {
printf_s("파일 열기에 실패했습니다.");
return 1;
}
int character;
// 파일에 문자 쓰기
for (character = 'A'; character <= 'Z'; character++) {
fputc(character, filePointer);
}
// 파일 닫기
fclose(filePointer);
}
위 예시의 결과는 A~Z까지 output.txt에 저장이 된다.
3. fgets
fgets는 파일에서 문자열을 읽어오는 데 사용된다.
문자열을 읽어와야 하므로 fgetc 처럼 변수 하나가 아닌
버퍼로 사용할 문자열 배열이 필요하며 읽을 최대 문자의 수도 지정해 줘야 한다.
char line[100]; //문자열 버퍼
// 파일에서 문자열 읽기
while (fgets(line, sizeof(line), filePointer) != NULL) {
printf_s("읽은 문자열: %s", line);
}
4. fputs
fputs는 문자열을 파일에 저장하는 데 사용된다.
이 함수는 쓰고자 하는 문자열과 파일 포인터를 인수로 받아 파일에 저장하며 다음은 fputs의 사용 예시이다.
#include <stdio.h>
int main() {
FILE *filePointer;
filePointer = fopen("output.txt", "w");
if (filePointer == NULL) {
printf_s("파일 열기에 실패했습니다.");
return 1;
}
const char *message = "Hello, World!\n";
// 파일에 문자열 쓰기
if (fputs(message, filePointer) != EOF) {
printf_s("파일에 문자열을 성공적으로 썼습니다.");
} else {
printf_s("파일에 문자열을 쓰는데 실패했습니다.");
}
// 파일 닫기
fclose(filePointer);
}
위 예시의 결과는 output.txt에 Hello, World!의 문자열이 저장된다.
728x90
Comments