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
'개념 > 혼자 공부하는 C언어' 카테고리의 다른 글
chapter 18) 여러 줄의 문장을 입력하여 한 줄로 출력 (1) | 2024.10.12 |
---|---|
chapter 18) 버퍼를 공유함으로 인해 발생하는 문제 (1) | 2024.10.11 |
chapter 18) 다양한 자료형을 형식에 맞게 입출력 (2) | 2024.10.09 |
chapter 18) stdin과 stdout을 사용한 문자 입출력 (7) | 2024.10.08 |
chapter 18) fread와 fwrite 함수의 차이 (0) | 2024.10.07 |