본문 바로가기
개념/혼자 공부하는 C언어

chapter 18) 문자열을 한 문자씩 파일로 출력하기

by kiseno 2024. 10. 10.
728x90
반응형
SMALL
#include <stdio.h>

int main(void){
    FILE *fp;
    char str[] = "banana";
    int i;

    fp = fopen("b.txt", "w");
    if (fp == NULL){
        printf("do not open the file.\n");
        return 1;
    }
    i = 0;
    while(str[i] != '\0'){
        fputc(str[i], fp);
        i++;
    }
    fputc('\n', fp);
    fclose(fp);

    return 0;
}

### 코드 분석

- `FILE *fp;`는 파일 작업을 위한 파일 포인터 `fp`를 선언합니다.
- `char str[] = "banana";`는 쓸 문자열을 저장하는 `str` 배열을 선언하고 "banana"로 초기화합니다.
- `fp = fopen("b.txt", "w");`를 사용하여 "b.txt" 파일을 쓰기 모드(`"w"`)로 엽니다. 만약 파일이 성공적으로 열리지 않는 경우, `"do not open the file.\n"` 메시지를 출력하고 프로그램을 비정상적으로 종료합니다.
- `while(str[i] != '\0'){...}` 루프를 사용하여 `str` 배열의 각 문자를 파일에 씁니다. 문자열의 끝을 나타내는 널 문자(`'\0'`)에 도달할 때까지 각 문자를 `fputc` 함수를 사용하여 파일에 쓴 다음, `i`를 증가시켜 다음 문자로 이동합니다.
- `fputc('\n', fp);`를 호출하여 문자열 다음에 줄바꿈 문자를 파일에 추가합니다.
- `fclose(fp);`를 사용하여 파일을 닫습니다. 파일 작업을 마친 후에는 반드시 파일을 닫아주어야 합니다.

### 프로그램의 동작

프로그램이 실행되면, 지정된 문자열 "banana"가 "b.txt" 파일에 순차적으로 쓰여지고, 마지막에는 줄바꿈 문자가 추가됩니다. 따라서 "b.txt" 파일을 열어보면 다음과 같은 내용을 볼 수 있습니다.

```
banana
```

728x90
반응형
LIST