Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- php
- Math
- JavaScript
- DP
- udemy
- 백준
- 생활코딩
- BOJ
- Algorithm
- sorting
- 따라하면서 배우는 C언어
- Python
- 따배씨
- Cleancode
- server
- 종만북
- greedy
- BASIC
- BFS
- 따라하며 배우는 C언어
- 정수론
- C
- Algospot
- String
- programmers
- 인프런
- web
- graph
- dfs
- C언어
Archives
- Today
- Total
몽상실현개발주의
[따배씨] 13.4 텍스트 파일 모드 스트링과 다양한 입출력 함수들 본문
따배씨 - 따라하며 배우는 C언어
13강 파일 입출력
13.4 텍스트 파일 모드 스트링과 다양한 입출력 함수들
- fprintf()
- fscanf()
- fgets()
- fputs()
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 31
int main(void){
FILE * fp;
char words[MAX] = {'\0'};
const char* filename = "record.txt";
/*
fopne() mode strings for text fiels
- r : reading
- w : creating-and-writing or over-writing
- a : appending or creating-and-writing
- r+ : both rading and writing
- w+ : reading writing, over-writin or crating
- a+ : reading and writing, appending or creating
*/
if ((fp = fopen(filename, "a+")) == NULL)
{
fprintf(stderr, "Can't open \"%s\" file.\n", filename);
exit(EXIT_FAILURE);
}
while((fscanf(stdin, "%30s", words) != NULL) && (words[0] != '.'))
fprintf(fp, "%s\n", words);
rewind(fp); /* go back to begining of file*/
while (fscanf(fp, "%s", words) == 1)// while (fscanf(fp, "%s", words) != EOF)
fprintf(stdout, "%s\n", words);
if (fclose(fp) != 0)
fprintf(stderr, "Error closing file\n");
return 0;
}
fprintf(stderr, "Can't open \"%s\" file.\n", filename);
- stderr 에 출력을 하여도 stdout 과 같이 동작
- 구분하여 동작하게 하려면 운영체제에서 redirection 할때 error 로 출력하게 해주어야 함
while((fscanf(stdin, "%30s", words) != NULL) && (words[0] != '.'))
fprintf(fp, "%s\n", words);
fscanf(stdin, "%30s", words) != NULL
- EOF check
while((fgets(words, MAX, stdin) != NULL) && (words[0] != '.'))
fputs(words, fp);
- fgets()
rewind(fp); /* go back to begining of file*/
- 파일의 처음으로 돌아감
while (fscanf(fp, "%s", words) == 1)// while (fscanf(fp, "%s", words) != EOF)
fprintf(stdout, "%s\n", words);
fscanf(fp, "%s", words) == 1
- EOF check
while (fgets(words, MAX, fp) != NULL)// EOF check
fputs(words, stdout);
- fgets()
이 글의 모든 사진과 내용의 출처는 홍정모 교수님께 있음을 알려드립니다.
http://blog.naver.com/atelierjpro
http://www.inflearn.com/course/following-c
'Language > C' 카테고리의 다른 글
[따배씨] 13.7 기타 입출력 함수들 (0) | 2021.06.18 |
---|---|
[따배씨] 13.5 바이너리 파일 입출력 (0) | 2021.06.18 |
[따배씨] 13.3 텍스트 인코딩과 코드 페이지 (0) | 2021.06.16 |
[따배씨] 13.2 텍스트 파일 입출력 예제 (0) | 2021.06.16 |
[따배씨] 13.1 파일 입출력의 작동 원리 (0) | 2021.06.16 |
Comments