안녕하세요. 취업한 공대누나입니다.
오늘은 지난 시간에 이어서 파일 입출력을 보도록 하겠습니다.
지난 포스팅에서는 파일 읽기에 대해 다뤘고, 오늘은 텍스트 파일을 작성해 보도록 하겠습니다.
그 전에 우선 파일 입출력은 왜 필요한 걸까요?
우리는 프로그램을 작성하고 나서 실행 중에 데이터가 생기면 메모리에 보관해서 사용하였습니다.
하지만 메모리에 저장된 데이터는 프로그램 실행이 종료가 되면 사라지게 됩니다.
하지만 이러한 데이터를 사용해야 할 수가 있습니다.
장비의 정보에 대한 기록을 남겨야 하기도 하고 어느 곳에서 오류가 났는지 파악할 때
기록을 남겨 놓을 수도 있기 때문입니다.
그럼 텍스트 파일을 작성하는 것을 하기 전에 간단하게 몇 개의 함수를 소개해 드리고 시작하겠습니다.
1. 텍스트 파일 작성하기
텍스트 파일을 작성하는 순서는 파일을 읽을 때와 비슷합니다.
1) 대상 파일을 엽니다.
2) 파일로 출력을 합니다.
3) 조작이 끝나고 파일을 닫아줍니다.
fopen_s(&fp, "gdnn.txt", "w"); 라는 부분을 보면 마지막이 w로 되어 있으므로
아 쓰기 모드로 여는 것입니다.
또한 gdnn.txt라는 파일에 무언가를 쓰게 되겠지요.
만약 gdnn.txt라는 파일이 없다면 만들어지게 됩니다.
<puts 함수>
여기서 puts라는 함수가 쓰이게 되는데요.
puts 함수는 문자열을 출력할 때 쓰는 함수입니다.
입력 문자열 뒤에 개행이 추가되기 떄문에 위의 printf 처럼 따로 넣어줄 필요는 없습니다.
간단하게 소스코드에서 보시다시피
puts("입력할 문자열");
이렇게 사용하시면 됩니다.
실패하면 EOF를 반환하고 성공하게 되면 음수가 아닌 수를 반환합니다.
<fgetc 함수>
다음 while 문을 보시면 end 값이 EOF가 아닐 때 까지 계속 도는 것을 확인할 수 있습니다.
그렇다면 end는 무슨 값을 입력받는 걸까요?
end는 fgetc 함수를 통해서 문자를 입력받아 end에 저장하고 있습니다.
이 때 선택한 스트림이 stdin이기 때문에 키보드로부터 문자를 입력받는 것입니다.
<fputc 함수>
그 다음 줄을 보시면 fputc 함수를 통해 end에 저장된 문자를 출력하고 있습니다.
이 때 선택한 스트림이 fp이므로 gdnn.txt 파일에 입력된 문자를 출력하게 되는 것입니다.
그리고 파일을 닫아주며 프로그램 실행이 끝나게 됩니다.
파일 입출력을 왜 배우는 걸까 과거에는 생각해보았습니다.
물론 저는 소프트웨어 쪽을 전공하고 있는 사람은 아니기 때문에 실무에서 이것을 직접적으로 사용할 일은 없습니다.
그러나 로그 파일이랑 raw data를 남겨놔야 어떤 문제가 발생했는지 알 수 있고 이런 것들을 보니
정말 중요한 부분이 아닌가 생각이 됩니다.
'전자 공학 > C언어 C++' 카테고리의 다른 글
[C++ 독학하기] 0. 파일 소스을(를) 열 수 없습니다. "stdafx.h" (1) | 2021.02.16 |
---|---|
C언어와 C++의 차이점 (절차지향과 객체지향) (0) | 2021.02.12 |
[C언어 독학하기] 20. 파일 입출력 (fopen_s) (1) | 2020.12.20 |
[C언어 독학하기] 18. 구조체란? struct, typedef (3) | 2020.12.12 |
[C언어 독학하기] 17. 값에 의한 호출, 주소에 의한 호출 (0) | 2020.11.18 |