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 |
Tags
- greedy
- 생활코딩
- web
- BOJ
- 백준
- JavaScript
- dfs
- Algorithm
- programmers
- C
- DP
- 따배씨
- graph
- BFS
- sorting
- Python
- BASIC
- 따라하며 배우는 C언어
- 인프런
- Math
- Algospot
- Cleancode
- udemy
- String
- server
- 따라하면서 배우는 C언어
- 종만북
- php
- 정수론
- C언어
Archives
- Today
- Total
몽상실현개발주의
[따배씨] 13.2 텍스트 파일 입출력 예제 본문
따배씨 - 따라하며 배우는 C언어
13강 파일 입출력
13.2 텍스트 파일 입출력 예제
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[]){
int ch;
FILE* fr;
/*
typedef struct _iobuf
{
char* _ptr;
int _cnt;
char* _base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char* _tmpfname;
} FILE;
// File 을 처리할 때 필요한 여러가지 데이터들의 묶음을 FILE 이라는 자료형이 있는것 처럼 사용하게 해줌
*/
unsigned long count = 0;
if (argc != 2){
printf("Usage : %s filename\n", argv[0]);
exit(EXIT_FAILURE);
}
if ((fr = fopen(argv[1], "r")) == NULL) // Open a text file for reading.
{
printf("Can't open %s\n", argv[1]);
exit(EXIT_FAILURE);
}
/*
fopen mode strings for text files
- r: reading
- w: creating-and-writing or over-writing
- a: appending or creating-and-writing
- r+: both reading and writing
- w+: reading and writing, over-writing or creating
- a+: reading and writing, appending or creating
*/
while ((ch = fgetc(fr)) != EOF) // getc(fr)
{
//putc(ch, stdout); //same as putchar(ch);
fputc(ch, stdout);
count++;
}
fclose(fr);
printf("FILE %s has %lu characters\n", argv[1], count);
return 0;
}
FILE* fr;
- 파일을 처리할 때 필요한 데이터 묶음에 대한 포인터
if ((fr = fopen(argv[1], "r")) == NULL)
{
printf("Can't open %s\n", argv[1]);
exit(EXIT_FAILURE);
}
- fopen() 은 file을 처리하는데 필요한 데이터 묶음에 대한 pointer 를 return
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[]){
int ch;
FILE* fr, *fw;
const char* out_filename = "output.txt";
unsigned long count = 0;
if (argc != 2){
printf("Usage : %s filename\n", argv[0]);
exit(EXIT_FAILURE);
}
if ((fr = fopen(argv[1], "r")) == NULL)
{
printf("Can't open %s\n", argv[1]);
exit(EXIT_FAILURE);
}
if ((fw = fopen(out_filename, "w")) == NULL)
{
printf("Can't open %s\n", out_filename);
exit(EXIT_FAILURE);
}
while ((ch = fgetc(fr)) != EOF) // getc(fr)
{
fputc(ch, stdout);
fputc(ch, fw);
count++;
}
fclose(fr);
fclose(fw);
printf("FILE %s has %lu characters\n", argv[1], count);
printf("Copied to %s\n", out_filename);
return 0;
}
- 입력받은 txt 파일의 내용을 새로운 txt 파일로 출력
이 글의 모든 사진과 내용의 출처는 홍정모 교수님께 있음을 알려드립니다.
http://blog.naver.com/atelierjpro
실리콘 밸리의 프로그래머 : 네이버 블로그
안녕하세요! 홍정모 블로그에 오신 것을 환영합니다. 주로 프로그래밍 관련 메모 용도로 사용합니다. 강의 수강하시는 분들은 홍정모 연구소 카페로 오세요.
blog.naver.com
http://www.inflearn.com/course/following-c
홍정모의 따라하며 배우는 C언어 - 인프런 | 강의
'따배씨++'의 성원에 힘입어 새롭게 개발된 C 언어로 시작하는 프로그래밍 입문 강의입니다. '따배씨'와 함께 프로그래밍 인생을 업그레이드 해보세요., 따라하며 배우는 C언어 '따배씨++'의 성원
www.inflearn.com
'Language > C' 카테고리의 다른 글
[따배씨] 13.4 텍스트 파일 모드 스트링과 다양한 입출력 함수들 (0) | 2021.06.18 |
---|---|
[따배씨] 13.3 텍스트 인코딩과 코드 페이지 (0) | 2021.06.16 |
[따배씨] 13.1 파일 입출력의 작동 원리 (0) | 2021.06.16 |
[따배씨] 12.19 멀티 쓰레딩 (0) | 2021.06.15 |
[따배씨] 12.18 자료형 한정자들 const, volatile, restrict (0) | 2021.06.15 |
Comments