안녕하세요!
오늘은 fopen함수를 이용하여 txt파일의 데이터를 읽어올때 txt파일 이름을 입력하여 받아오는 법에 대해서 이야기해보겠습니다. 기존의 fopen함수로 txt파일의 데이터 값을 읽어올 때는 아래와 같은 방법으로 데이터를 읽어왔습니다.
fopen("example.txt","r")
그러나 이 방식은 읽어올 txt의 이름을 미리 정해두고 데이터를 읽어온다는것을 알 수 있습니다. 만약 필요에따라 코더가 원하는 txt파일을 불러와야 한다면 어떻게 해야 할까요? 저는 아래와 같은 방법을 사용했습니다.
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 32 33 34 35 36 | #include "stdafx.h" #include "string.h" int main() { char textfile[40]; FILE *fp_file; char *s; printf(">>"); gets_s(textfile,40); fp_file = fopen(textfile, "rb"); if (fp_file == NULL) { printf("Cannot open the textfile.\n"); return 1; } while (1) { s = fgets(textfile, sizeof(textfile), fp_file); if (s == NULL) break; //printf("%s", txt); } fclose(fp_file); printf("%s", textfile); return 0; } |
코드 리뷰
2. gets_s 함수를 통해 배열 textfile에 불러올 txt파일 이름 입력
3. 파일포인터함수 fp_file을 통해 txt의 데이터값을 불러옴 이때 txt파일명은 textfile 배열이 됨
4. 포인터 s로 textfile의 값들을 읽어옴
위와 같은 방식으로 원하는 txt파일의 데이터 값을 읽어올 수 있게 되었습니다.
반응형
'Research & Studies > Programming' 카테고리의 다른 글
[알고리즘] a la russe 알고리즘 (곱셈 알고리즘) (0) | 2016.11.23 |
---|---|
[c언어] fgets함수 개행(enter) 제거하기 (1) | 2016.11.18 |
[C언어]문자열 2개 합치기 (How to concatenate 2 strings?) (0) | 2016.11.18 |
[C언어]문자열을 txt파일을 hex로 변환하여 배열에 저장하기 (2) | 2016.11.09 |
댓글